/** * Update the specified resource in storage. * * @param \Gladiator\Requests\FeaturedReportbackRequest $request * @param \Gladiator\Models\Competition $competition * @param \Gladiator\Models\Message $message * @return \Illuminate\Http\Response */ public function updateFeaturedReportback(FeaturedReportbackRequest $request, Competition $competition, Message $message) { $reportback = FeaturedReportback::where('competition_id', '=', $competition->id)->where('message_id', '=', $message->id)->first(); // @TODO: Make a function for this, potentially move it out of this controller. if (!isset($reportback)) { $reportback = new FeaturedReportback(); $reportback->competition_id = $competition->id; $reportback->message_id = $message->id; $reportback->save(); } $reportback->fill($request->all())->save(); return redirect()->route('competitions.message', [$competition, $competition->contest])->with('status', 'Featured reportback has been updated!'); }
protected function getFeaturedReportback() { if (!isset($this->competition)) { return; } $featuredReportback = FeaturedReportback::where('competition_id', '=', $this->competition->id)->where('message_id', '=', $this->message->id)->first(); if (isset($featuredReportback) && isset($featuredReportback->reportback_id) && isset($featuredReportback->reportback_item_id)) { $reportback = $this->manager->appendReportbackItemToMessage($featuredReportback->reportback_id, $featuredReportback->reportback_item_id); if ($reportback) { return $featuredReportback = ['shoutout' => $featuredReportback->shoutout, 'image_url' => $reportback->media->uri, 'caption' => $reportback->caption]; } } return null; }