/** * Add new restaurant suggest and return JSON data * route: /restaurants/suggest * * @param Request $request * @return Response */ public function suggestAction(Request $request) { $data = $request->json()->get('restaurant'); if (!isset($data['name']) || !isset($data['address']) || !isset($data['latitude']) || !isset($data['longitude']) || !isset($data['user_id'])) { $message = "Format should be: {'restaurant': {'name': <string>, 'address': <string>, 'latitude': <double>, 'longitude': <double>, 'user_id': <int>}}"; return showErrorResponse($message, HTTP_UNPROCESSABLE_ENTITY); } // Check Ng Words $ng_words = NgWord::ngword_filter($data['name'] . ' ' . $data['telephone'] . ' ' . $data['address'] . ' ' . $data['cuisines'] . ' ' . $data['other_details']); if ($ng_words) { $message = "Bad words found: " . implode(', ', $ng_words); return showErrorResponse($message, HTTP_ACCEPTED, CONSTANTS::ERROR_CODE_BADWORDS_FOUND); } try { $restaurant_suggest = new RestaurantsSuggest(); $restaurant_suggest->addRestaurantSuggest($data); $json_return[KeyParser::data] = ModelFormatter::restaurantSuggestFormat($restaurant_suggest); } catch (\Exception $e) { return showErrorResponse($e->getMessage()); } return response()->json($json_return); }