Skip to content
Merged

Dev #19

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions app/Http/Controllers/ActivityController.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,19 @@ function activity(Request $request){

function delete(Request $request){

if(isset($request->ids)){

DB::table('activities')
->whereIn('id',$request->ids)
->where('uid',Auth()->user()->id)
->delete();
}else{

DB::table('activities')
->where('id',$request->id)
->where('uid',Auth()->user()->id)
->delete();
}
if(isset($request->id)){
$request->ids = [$request->id];
}

if(count($request->ids) == 0){
return json_encode(['error' => 'No activity is selected']);
}

DB::table('activities')
->whereIn('id',$request->ids)
->where('uid',Auth()->user()->id)
->delete();

return json_encode([]);
}
}
7 changes: 5 additions & 2 deletions app/Http/Controllers/AuthController.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function signon(Request $request)
->update(['role' => '0']);
}

return redirect('login')->with('success', 'Registration Completed');
return redirect('login');
}

function login(Request $request)
Expand All @@ -55,6 +55,8 @@ function login(Request $request)
if(Auth::attempt($credentials)){
ActivityLog::log()->save('Login','You have successfully logged in.');
}

return json_encode([]);
}

function logout(Request $request)
Expand All @@ -64,6 +66,7 @@ function logout(Request $request)
Session::flush();

Auth::logout();


return json_encode([]);
}
}
92 changes: 92 additions & 0 deletions app/Http/Controllers/ConversationsController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use KChat\ActivityLog;
use KChat\NotificationsLog;

class ConversationsController extends Controller
{
function Conversations(Request $request){

$conversations = DB::table('participants')
->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'))
->rightJoin('conversations', 'participants.conversation_id', '=', 'conversations.id')
->rightJoin('participants as p', 'p.conversation_id', '=', 'conversations.id')
->where('participants.user_id',Auth()->user()->id)
->orderBy('conversations.created_at','DESC')
->groupBy('p.conversation_id')
->paginate(10);

$pages = range(1, $conversations->lastPage());

if($request->role == 'admin'){
return view('common.conversations',compact('conversations','pages'));
}

return view('common.conversations',compact('conversations','pages'));
}

function delete(Request $request){

if(isset($request->id)){
$request->ids = [$request->id];
}

if(count($request->ids) == 0){
return json_encode(['error' => 'No conversation is selected']);
}

//This is to ensure that a user can only delete conversations in which he/she is a participant.
$conversations = DB::table('participants')
->select('conversation_id')
->where('user_id',Auth()->user()->id)
->whereIn('conversation_id',$request->ids)
->get()
->toArray();

$ids = [];

foreach($conversations as $k => $conversation){
$ids[] = $conversation->conversation_id;
}

$conversations = DB::table('conversations')
->select('id','conversation_name')
->whereIn('id',$ids)
->get()
->toArray();

$conversation_name = [];

foreach($conversations as $conversation){
$conversation_name[$conversation->id] = $conversation->conversation_name;
}

$participants = DB::table('participants')
->select('conversation_id','user_id')
->whereIn('conversation_id',$ids)
->get()
->toArray();

ActivityLog::log()->save('Conversation','You have deleted conversation '.implode(',',$conversation_name).'.');

DB::table('conversations')
->whereIn('id',$ids)
->delete();

$tmp = [];

foreach($participants as $participant){
$tmp[$conversation_name[$participant->conversation_id]][] = $participant->user_id;
}

foreach($tmp as $group => $ids){
NotificationsLog::log()->save($ids,'Conversation',Auth()->user()->email.' have deleted conversation '.$group.'.');
}

return json_encode($participants);
}
}
2 changes: 1 addition & 1 deletion app/Http/Controllers/KchatController.php
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ function attachments(Request $request){

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

return true;
return json_encode([]);
}

function downattch(Request $request){
Expand Down
5 changes: 5 additions & 0 deletions app/Http/Controllers/MessageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ function messages(Request $request){

function UpdateConversation(Request $request){

if($request->grpname == null){
return json_encode(['error' => 'Group name is empty']);
}

// checking if user is participant of conversation also fetching conversation_id
$tmp = DB::table('participants')->where(['conversation_id' => $request->group_id,'user_id' => Auth()->user()->id])->get()->toArray();

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

}

return json_encode([]);
}
}
29 changes: 14 additions & 15 deletions app/Http/Controllers/NotificationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,20 @@ function notification(Request $request){
}

function delete(Request $request){

if(isset($request->ids)){

DB::table('notifications')
->whereIn('id',$request->ids)
->where('uid',Auth()->user()->id)
->delete();

}else{

DB::table('notifications')
->where('id',$request->id)
->where('uid',Auth()->user()->id)
->delete();

if(isset($request->id)){
$request->ids = [$request->id];
}

if(count($request->ids) == 0){
return json_encode(['error' => 'No notification is selected']);
}

}
DB::table('notifications')
->whereIn('id',$request->ids)
->where('uid',Auth()->user()->id)
->delete();

return json_encode([]);
}
}
3 changes: 3 additions & 0 deletions app/Http/Controllers/SettingController.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ function AddDepartment(Request $request){

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

return json_encode([]);
}

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

ActivityLog::log()->save('Setting','You have set upload path to '.$request->uploadpath.'.');

return json_encode([]);
}

}
Loading