%PDF- %PDF-
Direktori : /var/www/html/klinisol/klinisol-api/app/Http/Controllers/Api/App/v1/ |
Current File : /var/www/html/klinisol/klinisol-api/app/Http/Controllers/Api/App/v1/ChatController.php |
<?php namespace App\Http\Controllers\Api\App\v1; use App\Http\Controllers\Api\ApiController; use App\Http\Requests\Api\App\v1\Twilio\GenerateAccessTokenRequest; use App\Models\ChatRoom; use App\Models\Patient; use App\Models\User; use App\Services\KlinisolChat; use Carbon\Carbon; use Illuminate\Http\Request; class ChatController extends ApiController { public function generateAccessToken(GenerateAccessTokenRequest $request) { /** @var Patient $patient */ $patient = auth() ->guard('patient') ->user(); $room = KlinisolChat::generatePatientToken($request, $patient, $request->get('protocol'), $request->get('has_video')); /** @var ChatRoom $res */ $res = ChatRoom::query() ->where('patient_id', $patient->id) ->where('protocol_id', $request->get('protocol')) ->where('has_video', $request->get('has_video')) ->where('status', '=', ChatRoom::STARTED) ->first(); if ($res) { $res->created_at = Carbon::now(); $res->name = $room['room_name']; $res->sid = $room['room_sid']; $res->save(); } else { ChatRoom::query() ->create([ 'patient_id' => $patient->id, 'protocol_id' => $request->get('protocol'), 'has_video' => $request->get('has_video'), 'name' => $room['room_name'], 'sid' => $room['room_sid'], 'status' => ChatRoom::STARTED, ]); } return response()->json($room, 200); } }