Ejemplo n.º 1
0
 public static function replace(array $args = array())
 {
     $v = new PuzzleGuessSquare();
     if ($v->validate($args)) {
         $puzzle_guess = PuzzleGuess::whereRaw('puzzle_id in (select id from puzzles where slug = ?)', array($args['puzzle_slug']))->where('user_id', $args['user_id'])->first();
         $p = Puzzle::where('slug', $args['puzzle_slug'])->first();
         if (!$puzzle_guess) {
             $puzzle_guess = new PuzzleGuess();
             $puzzle_guess->user_id = $args['user_id'];
             $puzzle_guess->puzzle_id = $p->id;
             $puzzle_guess->created_timestamp_utc = time();
         }
         if ($puzzle_guess->solved()) {
             return array('errors' => array('This puzzle is already solved'));
         }
         $puzzle_guess->updated_timestamp_utc = time();
         $puzzle_guess->save();
         $pgs = PuzzleGuessSquare::where('puzzle_guess_id', $puzzle_guess->id)->where('row', $args['row'])->where('col', $args['col'])->first();
         if (!$pgs) {
             $pgs = new PuzzleGuessSquare();
             $pgs->puzzle_guess_id = $puzzle_guess->id;
             $pgs->row = $args['row'];
             $pgs->col = $args['col'];
         }
         $pgs->timestamp_utc = time();
         if (isset($args['letter'])) {
             $pgs->letter = $args['letter'];
         }
         $pgs->save();
         $pgs['solved'] = $puzzle_guess->solved();
         return $pgs;
     } else {
         return array('errors' => $v->errors);
     }
 }
Ejemplo n.º 2
0
 public function guess_squares($user_id = 0)
 {
     $ps = PuzzleGuess::where('puzzle_id', $this->id)->where('user_id', $user_id)->first();
     if (!$ps) {
         return array();
     } else {
         $pgs = PuzzleGuessSquare::where('puzzle_guess_id', $ps->id)->orderBy('col')->orderBy('row')->get();
         $ret = array();
         foreach ($pgs as $pg) {
             $ret[$pg->row . '-' . $pg->col] = array('letter' => $pg->letter);
         }
         return $ret;
     }
 }
Ejemplo n.º 3
0
 public function getPuzzle($slug)
 {
     $p = Puzzle::with('clues')->whereNull('puzzles.deleted_timestamp_utc')->with('puzzle_template')->where('slug', $slug)->first();
     if (!$p) {
         $returnData = array('errors' => array('Puzzle not available'));
         return response()->json($returnData, 401);
         //return array('errors' => array('Puzzle not available'));
     }
     $p->clue_squares = $p->puzzle_template->clueSquares();
     $p->puzzle_squares = $p->puzzle_squares(false);
     $template_owner = User::find($p->puzzle_template->user_id);
     $p->puzzle_template->owner = $template_owner->name;
     $p->puzzle_template->owner_username = $template_owner->username;
     $puzzle_owner = User::find($p->user_id);
     $p->owner = $puzzle_owner->name;
     $p->owner_username = $puzzle_owner->username;
     $user = Auth::user();
     if ($user) {
         $guess = PuzzleGuess::where('puzzle_id', $p->id)->where('user_id', $user->id)->first();
         if ($guess) {
             $p->solved = $guess->solved();
         } else {
             $p->solved = 0;
         }
         $p->guess_squares = $p->guess_squares($user->id);
     } else {
         $p->solved = 0;
         $p->guess_squares = array();
     }
     return $p;
 }