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);
     }
 }