Page MenuHomePhorge

No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/src/app/OpenVidu/Room.php b/src/app/OpenVidu/Room.php
index 6350ec53..b2cd33b4 100644
--- a/src/app/OpenVidu/Room.php
+++ b/src/app/OpenVidu/Room.php
@@ -1,94 +1,99 @@
<?php
namespace App\OpenVidu;
use App\Traits\OpenVidu\RoomSettingsTrait;
use Illuminate\Database\Eloquent\Model;
class Room extends Model
{
use RoomSettingsTrait;
protected $fillable = [
'user_id',
'name'
];
protected $table = 'openvidu_rooms';
private static $client = null;
+ public function owner()
+ {
+ return $this->belongsTo('\App\User', 'user_id', 'id');
+ }
+
private function client()
{
if (!self::$client) {
self::$client = new \GuzzleHttp\Client(
[
'http_errors' => false, // No exceptions from Guzzle
'base_uri' => \config('openvidu.api_url'),
'verify' => \config('openvidu.api_verify_tls'),
'auth' => [
\config('openvidu.api_username'),
\config('openvidu.api_password')
]
]
);
}
return self::$client;
}
public function createSession()
{
$response = $this->client()->request(
'POST',
"sessions",
[
'json' => [
'mediaMode' => 'ROUTED',
'recordingMode' => 'MANUAL'
]
]
);
if ($response->getStatusCode() !== 200) {
$this->session_id = null;
$this->save();
}
$session = json_decode($response->getBody(), true);
$this->session_id = $session['id'];
$this->save();
return $session;
}
public function getSessionToken($role = 'PUBLISHER')
{
$response = $this->client()->request(
'POST',
'tokens',
[
'json' => [
'session' => $this->session_id,
'role' => $role
]
]
);
$json = json_decode($response->getBody(), true);
return $json;
}
public function hasSession()
{
if (!$this->session_id) {
return false;
}
$response = $this->client()->request('GET', "sessions/{$this->session_id}");
return $response->getStatusCode() == 200;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Mon, Apr 6, 1:00 AM (4 d, 11 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18831792
Default Alt Text
(2 KB)

Event Timeline