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