Example #1
0
 /**
  * Add bookmark
  * route: /bookmarks/add
  * 
  * @param Request $request
  * @return Response
  */
 public function addBookmarkAction(Request $request)
 {
     $data = $request->json()->get('Bookmark');
     $json_return = array();
     if (!isset($data['user_id']) || !isset($data['restaurant_id'])) {
         $message = "Format should be: {'Bookmark': {'user_id': <int>, 'restaurant_id': <int>}}";
         return showErrorResponse($message, HTTP_UNPROCESSABLE_ENTITY);
     }
     $user_id = $data['user_id'];
     $restaurant_id = $data['restaurant_id'];
     if (!Bookmarks::isBookmarked($user_id, $restaurant_id)) {
         try {
             $bookmark = new Bookmarks();
             $bookmark = $bookmark->addBookmark($user_id, $restaurant_id);
             $bookmark[KeyParser::is_bookmarked] = Bookmarks::isBookmarked($user_id, $restaurant_id);
             $bookmark[KeyParser::status] = CONSTANTS::BOOKMARK_SAVED;
             $json_return[KeyParser::data] = ModelFormatter::bookmarkViewFormat($bookmark);
         } catch (\Exception $e) {
             return showErrorResponse('Error adding bookmark');
         }
     } else {
         $bookmark = Bookmarks::getBookmarkByUserIdRestaurantId($user_id, $restaurant_id);
         $bookmark[KeyParser::is_bookmarked] = Bookmarks::isBookmarked($user_id, $restaurant_id);
         $bookmark[KeyParser::status] = CONSTANTS::BOOKMARK_EXISTS;
         $json_return[KeyParser::data] = ModelFormatter::bookmarkViewFormat($bookmark);
     }
     return response()->json($json_return);
 }