/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(QARequest $request) { $webinar = decodeWebinar($request->input('webinars_hash')); $subscriber = decodeSubscriber($request->input('subscribers_hash')); QA::create(['webinar_id' => $webinar->id, 'subscriber_id' => $subscriber->id, 'question' => $request->input('question'), 'public' => $request->input('public')]); return response("Created", 201); }
/** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize(\Illuminate\Http\Request $request) { $subscriber = decodeSubscriber($request->input('subscribers_hash')); $webinar = decodeWebinar($request->input('webinars_hash')); if ($webinar == null || $subscriber == null) { return false; } foreach ($webinar->subscribers_lists()->get() as $subscriberList) { if ($subscriberList->subscribers->contains($subscriber->id)) { return true; } } return false; }
function index($webinar_uuid = null, $hash) { $subscriber = decodeSubscriber($hash); if (!$subscriber) { return redirect()->route("site.webinar.lp", [$webinar_uuid]); } $webinar = Webinar::where('uuid', '=', $webinar_uuid)->first(); if (!$webinar) { abort(404); } $streamingServer = $webinar->streaming_server()->first(); //$ownQas = $subscriber->qas($webinar->id)->get(); $ownQas = DB::table('qas')->join('subscribers', 'subscribers.id', '=', 'qas.subscriber_id')->select('qas.question as question', 'qas.created_at as question_datetime', 'subscribers.first_name as first_name', 'subscribers.last_name as last_name', DB::raw('NOW() - UNIX_TIMESTAMP(qas.created_at) as question_ask_before'), 'qas.answer as answer')->where('qas.webinar_id', '=', $webinar['id'])->where('qas.subscriber_id', '=', $subscriber->id)->get(); $publicQA = DB::table('qas')->join('subscribers', 'subscribers.id', '=', 'qas.subscriber_id')->select('qas.question as question', 'qas.created_at as question_datetime', 'subscribers.first_name as first_name', 'subscribers.last_name as last_name', DB::raw('NOW() - UNIX_TIMESTAMP(qas.created_at) as question_ask_before'), 'qas.answer as answer')->where('qas.webinar_id', '=', $webinar['id'])->where('qas.subscriber_id', '<>', $subscriber->id)->where('qas.public', '=', 1)->get(); $is_panelist = false; return view('layouts.webinar.index', compact('publicQA', 'webinar', 'subscriber', 'ownQas', 'is_panelist', 'streamingServer')); }