/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(ScenarioStoreRequest $request) { $scenario = new Scenario(); $scenario->story_id = $request->input('story_id'); $scenario->title = $request->input('title'); $scenario->given = $request->input('given'); $scenario->when = $request->input('when'); $scenario->then = $request->input('then'); if ($scenario->save()) { $details = $request->input('details'); if (count($details) > 0) { foreach ($details as $key => $detail) { $details[$key]['scenario_id'] = $scenario->id; $details[$key]['created_at'] = new \DateTime(); $details[$key]['updated_at'] = new \DateTime(); } $this->scenarioDetail->insert($details); } Notification::success(trans('messages.scenario.created')); return redirect()->route('stories.show', ['uid' => $scenario->story->uid]); } Notification::error(trans('messages.scenario.createFailed')); return back()->withInput(); }
/** * Get all the scenario data for the game to start * * @return JSON data */ public function getStartupData() { $newOptions = $newPeople = array(); $scenarios = Scenario::all(); $options = Option::all(); $people = OptionPerson::all(); foreach ($scenarios as &$s) { foreach ($options as $o) { foreach ($people as $p) { if ($p['option_id'] == $o['id']) { $newPeople[] = array('person_id' => $p['person_id'], 'fatigue' => $p['fatigue'], 'motivation1' => $p['motivation1'], 'motivation2' => $p['motivation2'], 'option_id' => $p['option_id']); } } if ($o['scenario_id'] == $s['id']) { $newOptions[] = array('name' => $o['name'], 'hint' => $o['hint'], 'description' => $o['description'], 'people' => $newPeople); } $newPeople = array(); } $s['options'] = $newOptions; $newOptions = array(); } return $scenarios; }