Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/OpenViduController.php
Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | public function joinRoom($id) | ||||
return $this->errorResponse(422, $error, $response + ['code' => 327]); | return $this->errorResponse(422, $error, $response + ['code' => 327]); | ||||
} | } | ||||
} | } | ||||
// Initialize connection tokens | // Initialize connection tokens | ||||
if ($init) { | if ($init) { | ||||
// Choose the connection role | // Choose the connection role | ||||
if ($isOwner) { | $canPublish = !empty(request()->input('canPublish')); | ||||
$role = Room::ROLE_MODERATOR; | $reqRole = $canPublish ? Room::ROLE_PUBLISHER : Room::ROLE_SUBSCRIBER; | ||||
} elseif (request()->input('role') === Room::ROLE_PUBLISHER) { | $role = $isOwner ? Room::ROLE_MODERATOR : $reqRole; | ||||
$role = Room::ROLE_PUBLISHER; | |||||
} else { | |||||
$role = Room::ROLE_SUBSCRIBER; | |||||
} | |||||
// Create session token for the current user/connection | // Create session token for the current user/connection | ||||
$response = $room->getSessionToken($role); | $response = $room->getSessionToken($role, ['canPublish' => $canPublish]); | ||||
if (empty($response)) { | if (empty($response)) { | ||||
return $this->errorResponse(500, \trans('meet.session-join-error')); | return $this->errorResponse(500, \trans('meet.session-join-error')); | ||||
} | } | ||||
// Create session token for screen sharing connection | // Create session token for screen sharing connection | ||||
if ($role != Room::ROLE_SUBSCRIBER && !empty(request()->input('screenShare'))) { | if ($role != Room::ROLE_SUBSCRIBER && !empty(request()->input('screenShare'))) { | ||||
$add_token = $room->getSessionToken(Room::ROLE_PUBLISHER); | $add_token = $room->getSessionToken(Room::ROLE_PUBLISHER); | ||||
$response['shareToken'] = $add_token['token']; | $response['shareToken'] = $add_token['token']; | ||||
} | } | ||||
$response_code = 200; | $response_code = 200; | ||||
$response['role'] = $role; | $response['role'] = $role; | ||||
$response['owner'] = $isOwner; | $response['owner'] = $isOwner; | ||||
$response['config'] = $config; | $response['config'] = $config; | ||||
$response['canPublish'] = $canPublish; | |||||
} else { | } else { | ||||
$response_code = 422; | $response_code = 422; | ||||
$response['code'] = 322; | $response['code'] = 322; | ||||
} | } | ||||
return response()->json($response, $response_code); | return response()->json($response, $response_code); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 88 Lines • Show Last 20 Lines |