%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/camillo/camillo-api-master/app/Observers/
Upload File :
Create Path :
Current File : /var/www/html/camillo/camillo-api-master/app/Observers/MinorObserver.php

<?php

namespace App\Observers;

use App\Models\Minor;
use Chatkit\Chatkit;

class MinorObserver
{
    /**
     * Handle the user "deleted" event.
     *
     * @param \App\Models\Minor $minor
     *
     * @return void
     * @throws \Chatkit\Exceptions\MissingArgumentException
     */
    public function deleted(Minor $minor)
    {
        foreach ($minor->individuals as $individual) {
            $user = $individual->user;
            if ($user->pusher_id) {
                $chatkit = new Chatkit([
                    'instance_locator' => env('PUSHER_APP_KEY'),
                    'key'              => env('PUSHER_APP_SECRET'),
                ]);
                $chatkitUsers = $chatkit->getUsersByID([
                    'user_ids' => [$user->pusher_id]
                ]);
                if (count($chatkitUsers['body']) > 0) {
                    foreach ($minor->classrooms as $classroom) {
                        if ($classroom->minors()->where('minors.active', true)->where('minors.id', '!=', $minor->id)->whereHas('individuals', function ($i) use ($individual, $minor) {
                                $i->where('individuals.id', $individual->id);
                                $i->where('minor_id', '!=', $minor->id);
                            })->count() === 0) {
                            $this->chatkit->removeUsersFromRoom([
                                'user_ids' => [$user->pusher_id],
                                'room_id'  => $classroom->pusher_id,
                            ]);
                        }
                    }
                }
            }
        }
    }
}

Zerion Mini Shell 1.0