%PDF- %PDF-
Direktori : /var/www/html/camillo/camillo-api-master/app/Observers/ |
Current File : /var/www/html/camillo/camillo-api-master/app/Observers/ClassroomObserver.php |
<?php namespace App\Observers; use App\Models\Classroom; use Chatkit\Chatkit; class ClassroomObserver { /** * Handle the user "created" event. * * @param \App\Models\Classroom $classroom * * @return void * @throws \Chatkit\Exceptions\MissingArgumentException * @throws \Chatkit\Exceptions\TypeMismatchException */ public function created(Classroom $classroom) { $chatkit = new Chatkit([ 'instance_locator' => env('PUSHER_APP_KEY'), 'key' => env('PUSHER_APP_SECRET'), ]); $current_user = auth()->user() ? auth()->user() : auth('api')->user(); $chatkitUsers = $chatkit->getUsersByID([ 'user_ids' => [$current_user->email] ]); if (count($chatkitUsers['body']) === 0) { $chatkitUser = $chatkit->createUser([ 'id' => $current_user->email, 'name' => $current_user->individual->name . ' ' . $current_user->individual->surname ]); $current_user->update([ 'pusher_id' => $chatkitUser['body']['id'] ]); } $room = $chatkit->createRoom([ 'creator_id' => $current_user->email, 'name' => $classroom->class_name . '-' . $classroom->schoolyear->description, 'user_ids' => [], 'private' => true, 'custom_data' => [ 'start_date' => $classroom->schoolyear->start_date, 'end_date' => $classroom->schoolyear->end_date ], ]); $classroom->update([ 'pusher_id' => $room['body']['id'] ]); } /** * @param \App\Models\Classroom $classroom * * @throws \Chatkit\Exceptions\MissingArgumentException */ public function deleted(Classroom $classroom) { if ($classroom->pusher_id) { $chatkit = new Chatkit([ 'instance_locator' => env('PUSHER_APP_KEY'), 'key' => env('PUSHER_APP_SECRET'), ]); try { $chatkit->deleteRoom(['id' => $classroom->pusher_id]); } catch (\Exception $exception) {} } } }