public function postPuzzle() { $user = Auth::user(); if (!$user) { $msg = 'Please log in'; $returnData = array('errors' => array($msg)); return response()->json($returnData, 401); } if (!Input::has('template_slug')) { $msg = 'No puzzle template selected'; $returnData = array('errors' => array($msg)); return response()->json($returnData, 401); } $p = new Puzzle(); $args = array(); $args['user_id'] = $user->id; $pt = PuzzleTemplate::where('slug', Input::get('template_slug'))->first(); $args['puzzle_template_id'] = $pt->id; if (!isset($args['name'])) { $args['name'] = $user->name . "'s " . $pt->name . " Puzzle"; } if ($p->validate($args)) { return Puzzle::create($args); } else { $returnData = array('errors' => $p->errors()); return response()->json($returnData, 401); } }
public static function create(array $args = array()) { $v = new Puzzle(); if ($v->validate($args)) { $p = new Puzzle(); $p->name = $args['name']; $p->slug = self::findSlug($args['name']); $p->user_id = $args['user_id']; $p->puzzle_template_id = $args['puzzle_template_id']; $p->timestamp_utc = time(); $p->save(); $ptss = PuzzleTemplateSquare::where('puzzle_template_id', $args['puzzle_template_id'])->get(); foreach ($ptss as $pts) { $ps = new PuzzleSquare(); $ps->puzzle_id = $p->id; $ps->row = $pts->row; $ps->col = $pts->col; $letter = ""; if (isset($args['puzzle_squares'])) { foreach ($args['puzzle_squares'] as $puzzle_square) { if ($puzzle_square['row'] == $pts->row && $puzzle_square['col'] == $pts->col) { $letter = $puzzle_square['letter']; } } } $ps->letter = $letter; $ps->square_type = $pts->square_type; $ps->save(); } if (isset($args['clues'])) { foreach ($args['clues'] as $c) { $p->clues()->save($c); } } return $p; } else { return array('errors' => $v->errors); } }