-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
67 lines (56 loc) · 1.93 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./keys/keyfile.json"
if "PORT" in os.environ:
PORT = os.environ["PORT"]
else:
PORT = 8080
from flask import Flask, request
from flask_cors import CORS
from packages.flask_firebase_admin import FirebaseAdmin
from database.database import db_manager
from core.matcher.main import matcher
algo = matcher(
[
-1.141253420905099,
0.4110048023788764,
0.2493821256254638,
1.8826022654166499,
4.397295230211623,
]
) # Parameters from optimization
app = Flask(__name__)
# CORS allowance
CORS(app, resources={r"/*": {"origins": "*"}})
app.config["CORS_HEADERS"] = "Content-Type"
# Database setup
firebase = FirebaseAdmin(app) # uses GOOGLE_APPLICATION_CREDENTIALS
db = db_manager(firebase)
# Routing here
@app.route("/get_matches", methods=["GET", "POST"])
@firebase.jwt_required
def get_matches():
interested_users = db.get_interested_users(is_test = False)
seeking_user_id = request.jwt_payload["user_id"]
if seeking_user_id in interested_users:
# seeking_user = interested_users[seeking_user_id]
suggestions = algo.get_suggestions(seeking_user_id, interested_users)
return suggestions
else:
return {
"msg": "User not found in interested_users document",
}, 404
# Unprotected route for testing
@app.route("/d/get_matches/<user_id>", methods=["GET", "POST"])
def d_get_matches(user_id):
interested_users = db.get_interested_users(is_test = True)
seeking_user_id = str(user_id)
if seeking_user_id in interested_users:
# seeking_user = interested_users[seeking_user_id]
suggestions = algo.get_suggestions(seeking_user_id, interested_users)
return {"matches": suggestions}
else:
return {
"msg": "User not found in interested_users document",
}, 404
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0", port=PORT)