From 71e23e2b55babe0d354d7a1c602a257bb4400d90 Mon Sep 17 00:00:00 2001 From: matthewzhang Date: Fri, 1 Oct 2021 18:56:05 -0400 Subject: [PATCH 1/2] Added operations for favoriting room --- backend/src/user_service.py | 52 ++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/backend/src/user_service.py b/backend/src/user_service.py index 04955cec4..af73aceaf 100644 --- a/backend/src/user_service.py +++ b/backend/src/user_service.py @@ -1,4 +1,4 @@ -from flask import Blueprint, request, session, json +from flask import Blueprint, request, session, json, jsonify import bcrypt import database_service @@ -85,3 +85,53 @@ def update_notifications(): 'emailNotifications': emailNotifications, 'smsNotifications': smsNotifications}}) return json.dumps('settings updated') + + +# favorite_rooms = db["favorite rooms"] + + +@user_service.route('/add-to-favorites', methods=['POST']) +def add_to_favorites(): + user_email = request.json["email"] + room = request.json["room"] + if "email" not in session: + # not logged in + return jsonify("user not logged in") + else: + query = {'email':user_email} + entry = users.find_one(query) + room_list = entry["favoriteRooms"] + if room in room_list: + # room already in favorites + return jsonify("room already in favorites") + else: + room_list.append(room) + new_entry = {"favoriteRooms": room_list} + users.update_one(query, {'$set': new_entry}) + return jsonify("successful") + + +# how to route to a specific user? +# user should already be logged in to access this page. Otherwise defavoriting rooms does not make sense +@user_service.route('/remove-favorite', methods=['POST']) +def remove_favorite(): + user_email = request.json["email"] + # what does request["room"] do? + room = request.json["room"] + + if "email" not in session: + # not logged in + return jsonify("must be logged in to access!") + else: + # user is logged in + query = {'email': user_email} + entry = users.find_one(query) + room_list = entry["favoriteRooms"] + if room not in room_list: + return jsonify("Room was not favorited to begin with!") + else: + room_list.remove(room) + new_entry = {"favoriteRooms": room_list} + users.update_one(query, {'$set': new_entry}) + return jsonify("Removal successful") + From 02b286b73d58b8d1a5aafb3fe4be46112e5586c2 Mon Sep 17 00:00:00 2001 From: matthewzhang Date: Sat, 2 Oct 2021 14:58:38 -0400 Subject: [PATCH 2/2] added getting favorite rooms from a user from an email --- backend/src/user_service.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/backend/src/user_service.py b/backend/src/user_service.py index af73aceaf..5f7d25b52 100644 --- a/backend/src/user_service.py +++ b/backend/src/user_service.py @@ -110,6 +110,17 @@ def add_to_favorites(): users.update_one(query, {'$set': new_entry}) return jsonify("successful") +# is the method here a "GET"? +@user_service.route("/get-favorite-rooms", methods=["GET"]) +def get_favorites_rooms(): + email = request.json["email"] + if "email" not in session: + return jsonify("user not logged in") + else: + query = {'email': email} + entry = users.find_one(query) + return jsonify(entry["favoriteRooms"]) + # how to route to a specific user? # user should already be logged in to access this page. Otherwise defavoriting rooms does not make sense