瀏覽代碼

Sending current meeting to client.

Kain_Stropov 5 年之前
父節點
當前提交
4c78b65bd4

+ 13 - 4
app/Http/Controllers/ClientController.php

@@ -5,6 +5,8 @@ namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Http;
 use App\HttpModels\ClientLobbyModel;
+use App\HttpModels\MeetingModel;
+use App\Models\AppSession;
 
 use Cookie;
 
@@ -18,7 +20,7 @@ class ClientController extends Controller
         $sessionKey = Cookie::get('sessionKey');
 
         $lobbyModel = new ClientLobbyModel($lobby);
-        $response = response()->view('client/index',compact('lobbyModel'),200);
+        // $response = response()->view('client/index',compact('lobbyModel'),200);
 
         if(!$sessionKey){
             $loginUrl = env('BACKEND_URL', 'http://localhost:8080') . '/api/session/createStrangerSession';
@@ -31,15 +33,22 @@ class ClientController extends Controller
 
             $sessionKey = $httpResponse['data'];
 
-            $cookie = cookie()->forever('sessionKey', $sessionKey, '/');
+            // $cookie = cookie()->forever('sessionKey', $sessionKey, '/');
+
+            cookie()->queue('sessionKey', $sessionKey, 1440, '/');
 
             // $response = new \Illuminate\Http\Response(view('client/index'));
-            $response->withCookie($cookie);
+            // $response->withCookie($cookie);
             // return $response;
         } 
         // else {
         //     return view('client/index');
         // }
-        return $response;
+        $session = AppSession::where("session_key",$sessionKey);
+        $meeting = null;
+        if ($session->meetingPaticipant && $session->meetingParticipant->meeting->lobby_id === $lobby->id) {
+            $meeting = new MeetingModel($session->meetingParticipant->meeting);
+        }
+        return view('client/index',compact('lobbyModel','meeting'));
 	}
 }

+ 2 - 5
app/HttpModels/LobbyModel.php

@@ -3,17 +3,14 @@ namespace App\HttpModels;
 
 use App\Models\Lobby;
 
-class LobbyModel {
-    public $uid;
-    public $name;
+class LobbyModel extends ClientLobbyModel {
     public $isStrangerAccessible;
     public $isClientAccessible;
     public $meetings = [];
 
     public function __construct(Lobby $lobby)
     {
-        $this->uid = $lobby->uid;
-        $this->name = $lobby->name;
+        parent::__construct($lobby);
         $this->isStrangerAccessible = $lobby->is_stranger_accessible;
         $this->isClientAccessible = $lobby->is_client_accessible;
         foreach ($lobby->meetings()->where('meeting.is_active',true)->get() as $meeting) {

+ 6 - 0
app/HttpModels/MeetingModel.php

@@ -6,9 +6,15 @@ use App\Models\Meeting;
 class MeetingModel {
     public $uid;
     public $name;
+    public $strangerFirstName;
+    public $strangerLastName;
+    public $strangerDob;
     
     public function __construct(Meeting $meeting) {
         $this->uid = $meeting->uid;
         $this->name = $meeting->title;
+        $this->strangerFirstName = $meeting->stranger_first_name;
+        $this->strangerLastName = $meeting->stranger_last_name;
+        $this->strangerDob = $meeting->stranger_dob;
     }
 }

+ 16 - 0
app/HttpModels/MeetingWithLobbyModel.php

@@ -0,0 +1,16 @@
+<?php
+namespace App\HttpModels;
+
+use App\Models\Meeting;
+
+class MeetingWithLobbyModel extends MeetingModel {
+
+    public $lobby;
+
+    public function __construct(Meeting $meeting)
+    {
+        parent::__construct($meeting);
+
+        $lobby = new ClientLobbyModel($meeting->lobby);
+    }
+}

+ 5 - 0
app/Models/AppSession.php

@@ -13,4 +13,9 @@ class AppSession extends Model
     {
         return $this->belongsTo(Pro::class);
     }
+
+    public function meetingParticipant()
+    {
+        return $this->belongsTo(MeetingParticipant::class, 'current_meeting_participant_id');
+    }
 }

+ 10 - 1
app/Models/Meeting.php

@@ -10,4 +10,13 @@ class Meeting extends Model
     protected $table = "meeting";
 
     //
-}
+
+    protected $dates = [
+        'strangerDob'
+    ];
+
+    public function lobby()
+    {
+        return $this->belongsTo(Lobby::class);
+    }
+}

+ 6 - 1
app/Models/MeetingParticipant.php

@@ -18,4 +18,9 @@ class MeetingParticipant extends Model
         }
         return '';
     }
-}
+
+    public function meeting()
+    {
+        return $this->belongsTo(Meeting::class);
+    }
+}

+ 3 - 0
resources/js/components/pages/ClientEntrance.vue

@@ -121,6 +121,9 @@ export default {
         lobbyProp: {
             type: Object,
             required: true
+        },
+        meetingProp: {
+            type: Object
         }
         // ,
         // lobby_uid: {

+ 4 - 1
resources/views/client/index.blade.php

@@ -1,6 +1,9 @@
 @extends('layouts.client')
 @section('content')
 <v-app id="meetingsApp" class="client">
-    <client-entrance :lobby-prop="{!! str_replace('"','\'',str_replace('\'','\\\'',json_encode($lobbyModel))) !!}"></client-entrance>
+    <client-entrance 
+        :lobby-prop="{!! str_replace('"','\'',str_replace('\'','\\\'',json_encode($lobbyModel))) !!}"
+        :meeting-prop="{!! str_replace('"','\'',str_replace('\'','\\\'',json_encode($meeting))) !!}"
+    ></client-entrance>
 </v-app>
 @endsection