/** * Creates a live update from a message and actions it. * * Takes a live update from the POST data, * @return \Illuminate\Http\JsonResponse */ public function message() { // Create live update $liveUpdate = new LiveUpdate(['update' => Input::get('message'), 'updateType' => Input::get('messageType')]); // Add to Redis Redis::rpush('live:updates', json_encode($liveUpdate)); // Potentially update the live status if it is not null if (!is_null(Input::get('messageType'))) { if (in_array(Input::get('messageType'), ['holdAbort', 'terminalCount', 'inProgress', 'missionSuccess', 'missionFailure'])) { Redis::set('live:status', Input::get('messageType')); } } // Push into Websockets event(new LiveUpdateCreatedEvent($liveUpdate)); // Push to queue for Reddit $job = new UpdateRedditLiveThreadJob(); $this->dispatch($job); // Add to DB \SpaceXStats\Models\LiveUpdate::create($liveUpdate->toArray()); // Respond return response()->json(null, 204); }