def update_user_restaurant_relationship(user_id, restaurant_id): """Make restaurant a favorite of the user.""" #TODO: Make user able to un-favorite a restaurant restaurant = crud.get_restaurant_by_id(restaurant_id) user = crud.get_user_by_id(user_id) # Check if restaurant is in database if not restaurant: id = request.json['id'] name = request.json['name'] cuisine = request.json['categories'][0]['title'] address = "\n".join(request.json['location']['display_address']) longitude = request.json['coordinates']['longitude'] latitude = request.json['coordinates']['latitude'] image_url = request.json['image_url'] restaurant = crud.create_restaurant(id, name, cuisine, address, longitude, latitude, image_url) crud.create_user_restaurant_relationship(user, restaurant) return jsonify({ 'status': 'success', 'message': "Restaurant added to user's favorites." })
def get_restaurants_seach(): location = request.args.get('location') longitude = request.args.get('longitude') latitude = request.args.get('latitude') categories = request.args.get('categories') price = request.args.get('price') sort_by = request.args.get('sort_by') yelp_res = YelpAPI(API_KEY).search_query(location=location, longitude=longitude, latitude=latitude, categories=categories, price=price, sort_by=sort_by, limit=5) yelp_list = yelp_res["businesses"] biz_list = [] user_id = session['user_id'] user = crud.get_user_by_id(user_id) for idx in range(len(yelp_list)): yelp_id = yelp_list[idx]["id"] res = crud.get_restaurant_by_id(yelp_id) group_name = None if 'group_name' in request.cookies: group_name = request.cookies["group_name"] like = crud.get_like(user, res, group_name) biz = YelpAPI(API_KEY).business_query(id=yelp_id) biz_res = restaurant_from_yelp(biz, like, like_count=0) biz_list.append(biz_res) return jsonify({"businesses": biz_list})
def delete_restaurant_for_user(user_id, restaurant_id): user = crud.get_user_by_id(user_id) restaurant = crud.get_restaurant_by_id(restaurant_id) crud.delete_user_restaurant_relationship(user, restaurant) return jsonify({ 'status': 'success', 'message': 'Restaurant successfully removed from favorites.' })
def is_liked(yelp_id): user_id = session['user_id'] user = crud.get_user_by_id(user_id) res = crud.get_restaurant_by_id(yelp_id) group_name = None if 'group_name' in request.cookies: group_name = request.cookies["group_name"] if not res: crud.create_restaurant(yelp_id) res = crud.get_restaurant_by_id(yelp_id) like = crud.get_like(user, res, group_name) if like: crud.delete_like(like) else: crud.create_like(user, res, group_name) return jsonify({'liked': like == None})
def get_a_restaurant_for_user(user_id, restaurant_id): """Get restaurant for a user. Give status if restaurant is favorited by user. Return error if restaurant is not found.""" user = crud.get_user_by_id(user_id) restaurant = crud.get_restaurant_by_id(restaurant_id) if not restaurant: return jsonify({'status': 'error', 'message': 'Restaurant not found.'}) result = {} result['restaurant'] = restaurant.to_dict() if restaurant in user.favorites: result['favorited'] = 'true' return jsonify(result)
def create_meetup(): """Create a new meetup.""" name = request.form.get('name') date = datetime.strptime(request.form.get('date'), '%Y-%m-%dT%H:%M') capacity = request.form.get('capacity') attendees_count = 0 description = request.form.get('description') restaurant_id = request.form.get('restaurant_id') host_id = request.form.get('host_id') image = request.files.get('image') image_url = None restaurant = crud.get_restaurant_by_id(restaurant_id) host = crud.get_user_by_id(host_id) if image: cloudinary_upload = cloudinary.uploader.upload(image) image_url = cloudinary_upload['url'].partition("upload")[2] meetup = crud.create_meetup(name, date, capacity, attendees_count, description, image_url, restaurant, host) notification_data = { 'message': f'There is a new event at {restaurant.name}.', 'link': 'Go to meetup.', 'url': f'/meetup/{meetup.id}' } notifications = crud.create_many_notifications( 'new_meetup', restaurant_id, json.dumps(notification_data), host) return jsonify({ 'status': 'success', 'message': 'Meetup created successfully.', 'meetup': meetup.to_dict() })
def get_restaurant(id): """Return restaurant information.""" return jsonify(crud.get_restaurant_by_id(id).to_dict())