ProController.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Meeting;
  4. use App\Models\MeetingParticipant;
  5. use Illuminate\Http\Request;
  6. use App\Models\Pro;
  7. use Illuminate\Support\Facades\DB;
  8. class ProController extends Controller
  9. {
  10. public function dashboard(Request $request){
  11. return view('pro.dashboard', ['sessionKey' => $request->cookie('sessionKey')]);
  12. }
  13. public function index(){
  14. $pros = Pro::all();
  15. return view('pro.index', compact('pros'));
  16. }
  17. public function create(){
  18. return view('pro.create');
  19. }
  20. public function show($uid, Request $request){
  21. $pro = Pro::where('uid', $uid)->first();
  22. return view('pro.show', compact('pro'));
  23. }
  24. public function meeting(Request $request, $meetingID) {
  25. $meeting = Meeting::where('uid', $meetingID)->first();
  26. if(!$meeting) {
  27. return abort(404, "Meeting no longer active");
  28. }
  29. $participants = MeetingParticipant::where('meeting_id', $meeting->id)->get();
  30. foreach ($participants as $participant) {
  31. $participant->proName = $participant->proName(); // eager-fill proName
  32. }
  33. return view('meeting', [
  34. 'meetingID' => $meetingID,
  35. 'participants' => $participants,
  36. 'guest' => false
  37. ]);
  38. }
  39. public function meet(Request $request) {
  40. $session = DB::table('app_session')->where('session_key', $request->cookie('sessionKey'))->first();
  41. $pro = false;
  42. if($session && $session->pro_id) {
  43. $pro = DB::table('pro')->where('id', $session->pro_id)->first();
  44. }
  45. return view('meet', [
  46. 'guest' => false,
  47. 'session' => $session,
  48. 'pro' => $pro
  49. ]);
  50. }
  51. public function getOpentokSessionKey(Request $request, $uid) {
  52. $client = DB::table('client')->where('uid', $uid)->first();
  53. return json_encode([
  54. "data" => $client->opentok_session_id
  55. ]);
  56. }
  57. }