Skip to content

Commit 80a7080

Browse files
authored
Merge pull request #19 from php-kchat/dev
Dev
2 parents 8921fcf + 703d69d commit 80a7080

19 files changed

+347
-73
lines changed

app/Http/Controllers/ActivityController.php

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,19 @@ function activity(Request $request){
2222

2323
function delete(Request $request){
2424

25-
if(isset($request->ids)){
26-
27-
DB::table('activities')
28-
->whereIn('id',$request->ids)
29-
->where('uid',Auth()->user()->id)
30-
->delete();
31-
}else{
32-
33-
DB::table('activities')
34-
->where('id',$request->id)
35-
->where('uid',Auth()->user()->id)
36-
->delete();
37-
}
25+
if(isset($request->id)){
26+
$request->ids = [$request->id];
27+
}
28+
29+
if(count($request->ids) == 0){
30+
return json_encode(['error' => 'No activity is selected']);
31+
}
32+
33+
DB::table('activities')
34+
->whereIn('id',$request->ids)
35+
->where('uid',Auth()->user()->id)
36+
->delete();
37+
38+
return json_encode([]);
3839
}
3940
}

app/Http/Controllers/AuthController.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ function signon(Request $request)
4040
->update(['role' => '0']);
4141
}
4242

43-
return redirect('login')->with('success', 'Registration Completed');
43+
return redirect('login');
4444
}
4545

4646
function login(Request $request)
@@ -55,6 +55,8 @@ function login(Request $request)
5555
if(Auth::attempt($credentials)){
5656
ActivityLog::log()->save('Login','You have successfully logged in.');
5757
}
58+
59+
return json_encode([]);
5860
}
5961

6062
function logout(Request $request)
@@ -64,6 +66,7 @@ function logout(Request $request)
6466
Session::flush();
6567

6668
Auth::logout();
67-
69+
70+
return json_encode([]);
6871
}
6972
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Illuminate\Support\Facades\DB;
6+
use Illuminate\Http\Request;
7+
use KChat\ActivityLog;
8+
use KChat\NotificationsLog;
9+
10+
class ConversationsController extends Controller
11+
{
12+
function Conversations(Request $request){
13+
14+
$conversations = DB::table('participants')
15+
->select('conversations.id as id','conversations.conversation_name as name','conversations.photo as photo','conversations.created_at as created_at',DB::raw('COUNT(p.user_id) as members'))
16+
->rightJoin('conversations', 'participants.conversation_id', '=', 'conversations.id')
17+
->rightJoin('participants as p', 'p.conversation_id', '=', 'conversations.id')
18+
->where('participants.user_id',Auth()->user()->id)
19+
->orderBy('conversations.created_at','DESC')
20+
->groupBy('p.conversation_id')
21+
->paginate(10);
22+
23+
$pages = range(1, $conversations->lastPage());
24+
25+
if($request->role == 'admin'){
26+
return view('common.conversations',compact('conversations','pages'));
27+
}
28+
29+
return view('common.conversations',compact('conversations','pages'));
30+
}
31+
32+
function delete(Request $request){
33+
34+
if(isset($request->id)){
35+
$request->ids = [$request->id];
36+
}
37+
38+
if(count($request->ids) == 0){
39+
return json_encode(['error' => 'No conversation is selected']);
40+
}
41+
42+
//This is to ensure that a user can only delete conversations in which he/she is a participant.
43+
$conversations = DB::table('participants')
44+
->select('conversation_id')
45+
->where('user_id',Auth()->user()->id)
46+
->whereIn('conversation_id',$request->ids)
47+
->get()
48+
->toArray();
49+
50+
$ids = [];
51+
52+
foreach($conversations as $k => $conversation){
53+
$ids[] = $conversation->conversation_id;
54+
}
55+
56+
$conversations = DB::table('conversations')
57+
->select('id','conversation_name')
58+
->whereIn('id',$ids)
59+
->get()
60+
->toArray();
61+
62+
$conversation_name = [];
63+
64+
foreach($conversations as $conversation){
65+
$conversation_name[$conversation->id] = $conversation->conversation_name;
66+
}
67+
68+
$participants = DB::table('participants')
69+
->select('conversation_id','user_id')
70+
->whereIn('conversation_id',$ids)
71+
->get()
72+
->toArray();
73+
74+
ActivityLog::log()->save('Conversation','You have deleted conversation '.implode(',',$conversation_name).'.');
75+
76+
DB::table('conversations')
77+
->whereIn('id',$ids)
78+
->delete();
79+
80+
$tmp = [];
81+
82+
foreach($participants as $participant){
83+
$tmp[$conversation_name[$participant->conversation_id]][] = $participant->user_id;
84+
}
85+
86+
foreach($tmp as $group => $ids){
87+
NotificationsLog::log()->save($ids,'Conversation',Auth()->user()->email.' have deleted conversation '.$group.'.');
88+
}
89+
90+
return json_encode($participants);
91+
}
92+
}

app/Http/Controllers/KchatController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ function attachments(Request $request){
229229

230230
DB::table('conversations')->where('id', $request->chat)->update(['message_id' => $id]);
231231

232-
return true;
232+
return json_encode([]);
233233
}
234234

235235
function downattch(Request $request){

app/Http/Controllers/MessageController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ function messages(Request $request){
4242

4343
function UpdateConversation(Request $request){
4444

45+
if($request->grpname == null){
46+
return json_encode(['error' => 'Group name is empty']);
47+
}
48+
4549
// checking if user is participant of conversation also fetching conversation_id
4650
$tmp = DB::table('participants')->where(['conversation_id' => $request->group_id,'user_id' => Auth()->user()->id])->get()->toArray();
4751

@@ -71,5 +75,6 @@ function UpdateConversation(Request $request){
7175

7276
}
7377

78+
return json_encode([]);
7479
}
7580
}

app/Http/Controllers/NotificationController.php

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,20 @@ function notification(Request $request){
3737
}
3838

3939
function delete(Request $request){
40-
41-
if(isset($request->ids)){
42-
43-
DB::table('notifications')
44-
->whereIn('id',$request->ids)
45-
->where('uid',Auth()->user()->id)
46-
->delete();
47-
48-
}else{
49-
50-
DB::table('notifications')
51-
->where('id',$request->id)
52-
->where('uid',Auth()->user()->id)
53-
->delete();
40+
41+
if(isset($request->id)){
42+
$request->ids = [$request->id];
43+
}
44+
45+
if(count($request->ids) == 0){
46+
return json_encode(['error' => 'No notification is selected']);
47+
}
5448

55-
}
49+
DB::table('notifications')
50+
->whereIn('id',$request->ids)
51+
->where('uid',Auth()->user()->id)
52+
->delete();
53+
54+
return json_encode([]);
5655
}
5756
}

app/Http/Controllers/SettingController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ function AddDepartment(Request $request){
6161

6262
ActivityLog::log()->save('Setting','You have successfully Added '.$request->adddepartment.' Department.');
6363

64+
return json_encode([]);
6465
}
6566

6667
function DeleteDepartment(Request $request){
@@ -87,6 +88,8 @@ function uploadpath(Request $request){
8788
\Settings::set('uploadpath',$request->uploadpath);
8889

8990
ActivityLog::log()->save('Setting','You have set upload path to '.$request->uploadpath.'.');
91+
92+
return json_encode([]);
9093
}
9194

9295
}

0 commit comments

Comments
 (0)