Browse Source

Update OT API flow

Vijayakrishnan 5 years ago
parent
commit
5bc7e48c43

+ 2 - 2
.idea/dataSources.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
 <project version="4">
   <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
   <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
-    <data-source source="LOCAL" name="stag@localhost" uuid="d127a3b7-9799-49f9-8d87-747f4dd66e7d">
+    <data-source source="LOCAL" name="stag2@localhost" uuid="d127a3b7-9799-49f9-8d87-747f4dd66e7d">
       <driver-ref>postgresql</driver-ref>
       <driver-ref>postgresql</driver-ref>
       <synchronize>true</synchronize>
       <synchronize>true</synchronize>
       <jdbc-driver>org.postgresql.Driver</jdbc-driver>
       <jdbc-driver>org.postgresql.Driver</jdbc-driver>
-      <jdbc-url>jdbc:postgresql://localhost:5432/stag</jdbc-url>
+      <jdbc-url>jdbc:postgresql://localhost:5432/stag2</jdbc-url>
     </data-source>
     </data-source>
   </component>
   </component>
 </project>
 </project>

+ 7 - 0
app/Http/Controllers/GuestController.php

@@ -6,6 +6,7 @@ use App\Models\Meeting;
 use App\Models\MeetingParticipant;
 use App\Models\MeetingParticipant;
 use Illuminate\Http\Request;
 use Illuminate\Http\Request;
 use App\Models\Pro;
 use App\Models\Pro;
+use Illuminate\Support\Facades\DB;
 
 
 class GuestController extends Controller
 class GuestController extends Controller
 {
 {
@@ -36,4 +37,10 @@ class GuestController extends Controller
         ]);
         ]);
     }
     }
 
 
+    public function getCheckinToken(Request $request, $uid) {
+        $client = DB::table('client')->where('uid', $uid)->first();
+        return json_encode([
+            "data" => $client->check_in_token
+        ]);
+    }
 }
 }

+ 3 - 2
resources/views/join.blade.php

@@ -34,6 +34,7 @@
         function joinMeeting(_form) {
         function joinMeeting(_form) {
             $.post('/api/session/createStrangerSession', {}, function (_data) {
             $.post('/api/session/createStrangerSession', {}, function (_data) {
                 var sessionKey = _data.data;
                 var sessionKey = _data.data;
+                localStorage.sessionKey = sessionKey;
                 $.ajax({
                 $.ajax({
                     type: 'post',
                     type: 'post',
                     url: '/api/client/createAsGuest',
                     url: '/api/client/createAsGuest',
@@ -48,8 +49,8 @@
                         if(_data.success) {
                         if(_data.success) {
                             localStorage.clientFirstName = $('[name="nameFirst"]').val();
                             localStorage.clientFirstName = $('[name="nameFirst"]').val();
                             localStorage.clientLastName = $('[name="nameLast"]').val();
                             localStorage.clientLastName = $('[name="nameLast"]').val();
-                            localStorage.clientSessionKey = _data.data;
-                            // window.location = '/meet';
+                            localStorage.clientUid = _data.data;
+                            window.location = '/meet';
                         }
                         }
                         else {
                         else {
                             alert(_data.message);
                             alert(_data.message);

+ 63 - 19
resources/views/meet.blade.php

@@ -40,9 +40,15 @@
                 client: false,
                 client: false,
                 pro: false,
                 pro: false,
 
 
-                sessionKey: '',
                 selfName: '',
                 selfName: '',
                 selfToken: '',
                 selfToken: '',
+
+                @if($guest)
+                clientUid: '',
+                checkInToken: '',
+                @endif
+
+                otSessionId: '',
             },
             },
             methods: {
             methods: {
                 getInitials: function(_name) {
                 getInitials: function(_name) {
@@ -101,13 +107,8 @@
                     var self = this;
                     var self = this;
 
 
                     var apiKey = '46678902';
                     var apiKey = '46678902';
-                    var sessionId = this.sessionKey;
+                    var sessionId = this.otSessionId;
                     var token = this.selfToken;
                     var token = this.selfToken;
-{{--                    @if($guest)--}}
-{{--                    token = 'T1==cGFydG5lcl9pZD00NTgyODA2MiZzaWc9NmE0YWU1NzIzN2I1ODUxNzY2YzMzN2VkNGNjMTI4ODdlYTBkNDYwOTpzZXNzaW9uX2lkPTFfTVg0ME5UZ3lPREEyTW41LU1UVTVNakl4TVRZMU16UTFOSDVhVW5CNGFsVnNNelpTVFdGblVFSXZVRmxxWWxGaldEUi1VSDQmY3JlYXRlX3RpbWU9MTU5MjIxMTY1NSZub25jZT0wLjgyMDAzMDEwNjk1NDk3MiZyb2xlPXB1Ymxpc2hlciZleHBpcmVfdGltZT0xNTkyMjk4MDU1';--}}
-{{--                    @else--}}
-{{--                    token = 'T1==cGFydG5lcl9pZD00NTgyODA2MiZzaWc9NGFjNzQ2NjgyNThjZjE4MTdiMTFmMDMwZTg5ZjFjMzhjZDJlMDFiMDpzZXNzaW9uX2lkPTFfTVg0ME5UZ3lPREEyTW41LU1UVTVNakl4TWpreE1qSTRObjUzZUhCU1dYWjRlbVF6V2pJMGN6UkRRbEp2T0RsbFduTi1VSDQmY3JlYXRlX3RpbWU9MTU5MjIxMjk0NCZub25jZT0wLjkwMjA3MTc4OTk3ODY4OTkmcm9sZT1wdWJsaXNoZXImZXhwaXJlX3RpbWU9MTU5MjI5OTM0NA==';--}}
-{{--                    @endif--}}
                     var session = OT.initSession(apiKey, sessionId);
                     var session = OT.initSession(apiKey, sessionId);
 
 
                     // TODO: Subscribe to remote stream (pro)
                     // TODO: Subscribe to remote stream (pro)
@@ -146,25 +147,68 @@
                 },
                 },
                 handleOpenTokError: function(e) {
                 handleOpenTokError: function(e) {
 
 
+                },
+
+                getClientCheckinToken: function(_done) {
+                    var self = this;
+                    $.get('/get-client-checkin-token/' + this.clientUid, function(_data) {
+                        console.log(_data);
+                        self.checkInToken = _data.data;
+                        _done();
+                    }, 'json');
+                },
+                getOpenTokSessionId: function(_done) {
+                    var self = this;
+
+                    $.ajax({
+                        type: 'post',
+                        url: '/api/clientVideoVisit/startVideoVisitAsStranger',
+                        headers: {
+                            'sessionKey': localStorage.sessionKey
+                        },
+                        data: {checkInToken: this.checkInToken},
+                        dataType: 'json'
+                    })
+                        .done(function (_data) {
+                            console.log(_data);
+                            if(_data.success) {
+                                self.otSessionId = _data.data;
+                                _done();
+                            }
+                            else {
+                                alert(_data.message);
+                            }
+                        })
+                        .fail(function (_data) {
+                            console.log(_data);
+                            alert(_data.message);
+                        });
+
                 }
                 }
             },
             },
             mounted: function() {
             mounted: function() {
 
 
                 var self = this;
                 var self = this;
 
 
-                this.sessionKey = localStorage.clientSessionKey;
-
-                var name = [];
-                if (localStorage.clientFirstName) name.push(localStorage.clientFirstName);
-                if (localStorage.clientLastName) name.push(localStorage.clientLastName);
-                this.selfName = name.join(' ');
-                $.post('/api/openTok/getClientToken', {
-                    opentokSessionId: localStorage.clientSessionKey,
-                    name: name.join(' ')
-                }, function (_data) {
-                    self.selfToken = _data.data;
-                    self.initOpenTok();
+                @if($guest)
+                this.clientUid = localStorage.clientUid;
+                this.getClientCheckinToken(function() { // get client check-in token
+
+                    self.getOpenTokSessionId(function() { // get opentok session id
+                        var name = [];
+                        if (localStorage.clientFirstName) name.push(localStorage.clientFirstName);
+                        if (localStorage.clientLastName) name.push(localStorage.clientLastName);
+                        this.selfName = name.join(' ');
+                        $.post('/api/openTok/getClientToken', {
+                            opentokSessionId: self.otSessionId,
+                            name: name.join(' ')
+                        }, function (_data) {
+                            self.selfToken = _data.data;
+                            self.initOpenTok();
+                        });
+                    });
                 });
                 });
+                @endif
 
 
             }
             }
         });
         });

+ 1 - 0
routes/web.php

@@ -34,6 +34,7 @@ Route::get('/meeting/{meetingID}/{participantID}', 'GuestController@meeting');
 Route::get('/join', function () {
 Route::get('/join', function () {
     return view('join');
     return view('join');
 });
 });
+Route::get('/get-client-checkin-token/{uid}', 'GuestController@getCheckinToken');
 Route::get('/meet', 'GuestController@meet');
 Route::get('/meet', 'GuestController@meet');
 
 
 // Route::middleware('ensureNoValidProSession')->group(function(){
 // Route::middleware('ensureNoValidProSession')->group(function(){