def insert_restaurant_page(request): """Insert new restaurant into database""" validate(instance=request.body, schema=restaurant_schema) body = json.loads(request.body) invalid = Restaurant.field_validate(body) if invalid: return JsonResponse(invalid) try: restaurant = Restaurant.insert(body) return JsonResponse(model_to_json(restaurant)) except ValueError: return HttpResponseBadRequest('duplicate email')
def edit_restaurant_page(request): """Update restaurant data""" validate(instance=request.body, schema=restaurant_schema) body = json.loads(request.body) invalid = Restaurant.field_validate(body) if invalid: # exit if invalid body return JsonResponse(invalid) restaurant = Restaurant.get(body["restaurant_id"]) edit_model(restaurant, body, restaurant_editable) if address_changed(body): update_model_geo(restaurant, body['address']) restaurant = save_and_clean(restaurant) return JsonResponse(model_to_json(restaurant))