From 782f1c806bff1d2a5b024032b268ed19e972545a Mon Sep 17 00:00:00 2001 From: Alkaratus Date: Sat, 15 Jun 2024 19:47:16 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Klasy+funkcje=20do=20uzupe=C5=82nienia=20kw?= =?UTF-8?q?erendami?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- analitics/MockUps.py | 24 ++++++++++++++++++++++++ analitics/Ranting.py | 9 +++++++++ analitics/RantingsAnalitics.py | 33 +++++++++++++++++++++++++++++++++ analitics/User.py | 7 +++++++ analitics/UserAnalitics.py | 25 +++++++++++++++++++++++++ analitics/main.py | 2 ++ 6 files changed, 100 insertions(+) create mode 100644 analitics/MockUps.py create mode 100644 analitics/Ranting.py create mode 100644 analitics/RantingsAnalitics.py create mode 100644 analitics/User.py create mode 100644 analitics/UserAnalitics.py create mode 100644 analitics/main.py diff --git a/analitics/MockUps.py b/analitics/MockUps.py new file mode 100644 index 00000000..8a481583 --- /dev/null +++ b/analitics/MockUps.py @@ -0,0 +1,24 @@ +from User import User +from Ranting import Ranting + +users = [ + User(1, "Lola"), + User(2, "Tony"), + User(3, "Lorry"), + User(4, "Betty") +] + +rantings = [ + Ranting(1, 1, 1, 5, "15-06-2024 15:04:32"), + Ranting(2, 1, 2, 6, "15-06-2024 15:04:36"), + Ranting(3, 2, 1, 7, "15-06-2024 15:04:40"), + Ranting(4, 2, 2, 8, "15-06-2024 15:04:44"), + Ranting(5, 2, 3, 9, "15-06-2024 15:04:48"), + Ranting(6, 3, 1, 10, "15-06-2024 15:04:52"), + Ranting(7, 3, 2, 6, "15-06-2024 15:04:56"), + Ranting(8, 3, 3, 5, "15-06-2024 15:05:00"), + Ranting(9, 4, 1, 4, "15-06-2024 15:05:04"), + Ranting(10, 4, 2, 3, "15-06-2024 15:05:08"), + Ranting(11, 4, 3, 2, "15-06-2024 15:05:12"), + Ranting(12, 4, 4, 1, "15-06-2024 15:05:16") +] diff --git a/analitics/Ranting.py b/analitics/Ranting.py new file mode 100644 index 00000000..7a75ede6 --- /dev/null +++ b/analitics/Ranting.py @@ -0,0 +1,9 @@ + + +class Ranting: + def __init__(self, id, movie_id, user_id, ranting, time): + self.id=id + self.movie_id=movie_id + self.user_id=user_id + self.ranting=ranting + self.time=time diff --git a/analitics/RantingsAnalitics.py b/analitics/RantingsAnalitics.py new file mode 100644 index 00000000..05e58624 --- /dev/null +++ b/analitics/RantingsAnalitics.py @@ -0,0 +1,33 @@ +from User import User +from Ranting import Ranting +from MockUps import users,rantings + + +def get_rantings(): + return rantings + + +def get_number_of_ratings(): + return get_rantings().__len__() + + +def get_rantings_in_time(begin_time, end_time): + pass + + +def get_rantings_of_movie(movie_id): + results = [] + for ranting in rantings: + if ranting.movie_id == movie_id: + results.append(ranting) + return results + + +def get_rantings_of_movie_numbers(movie_id): + return get_rantings_of_movie(movie_id).__len__() + + +def get_rantings_of_movie_in_time(movie_id, begin_time, end_time): + pass + + diff --git a/analitics/User.py b/analitics/User.py new file mode 100644 index 00000000..9dfb649d --- /dev/null +++ b/analitics/User.py @@ -0,0 +1,7 @@ + +class User: + def __init__(self,id,name): + self.id=id + self.name=name + + diff --git a/analitics/UserAnalitics.py b/analitics/UserAnalitics.py new file mode 100644 index 00000000..da78fca1 --- /dev/null +++ b/analitics/UserAnalitics.py @@ -0,0 +1,25 @@ +from User import User +from Ranting import Ranting +from MockUps import users,rantings + + +def get_number_of_users(): + return users.__len__() + + +def get_user_rantings(user_id): + results=[] + for ranting in rantings: + if ranting.user_id==user_id: + results.append(ranting) + return results + + +def get_user_rantings_number(user_id): + return get_user_rantings(user_id).__len__() + + +def get_user_rantings_in_time(user_id, begin, end): + pass + + diff --git a/analitics/main.py b/analitics/main.py new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/analitics/main.py @@ -0,0 +1,2 @@ + + From fb86be5af8e8abbb999feb7e2297ab9316c250c6 Mon Sep 17 00:00:00 2001 From: gzub04 Date: Sun, 16 Jun 2024 19:26:07 +0200 Subject: [PATCH 2/3] Basic poprawki --- analitics/MockUps.py | 28 ++++++------- analitics/RantingsAnalitics.py | 33 --------------- analitics/{Ranting.py => Rating.py} | 2 +- analitics/RatingsAnalytics.py | 33 +++++++++++++++ analitics/User.py | 9 ++-- analitics/UserAnalitics.py | 25 ----------- analitics/UserAnalytics.py | 25 +++++++++++ analitics/main.py | 49 ++++++++++++++++++++++ movie_recommendations/movie_recommender.py | 8 ++-- 9 files changed, 128 insertions(+), 84 deletions(-) delete mode 100644 analitics/RantingsAnalitics.py rename analitics/{Ranting.py => Rating.py} (92%) create mode 100644 analitics/RatingsAnalytics.py delete mode 100644 analitics/UserAnalitics.py create mode 100644 analitics/UserAnalytics.py diff --git a/analitics/MockUps.py b/analitics/MockUps.py index 8a481583..9c409534 100644 --- a/analitics/MockUps.py +++ b/analitics/MockUps.py @@ -1,5 +1,5 @@ from User import User -from Ranting import Ranting +from Rating import Rating users = [ User(1, "Lola"), @@ -8,17 +8,17 @@ users = [ User(4, "Betty") ] -rantings = [ - Ranting(1, 1, 1, 5, "15-06-2024 15:04:32"), - Ranting(2, 1, 2, 6, "15-06-2024 15:04:36"), - Ranting(3, 2, 1, 7, "15-06-2024 15:04:40"), - Ranting(4, 2, 2, 8, "15-06-2024 15:04:44"), - Ranting(5, 2, 3, 9, "15-06-2024 15:04:48"), - Ranting(6, 3, 1, 10, "15-06-2024 15:04:52"), - Ranting(7, 3, 2, 6, "15-06-2024 15:04:56"), - Ranting(8, 3, 3, 5, "15-06-2024 15:05:00"), - Ranting(9, 4, 1, 4, "15-06-2024 15:05:04"), - Ranting(10, 4, 2, 3, "15-06-2024 15:05:08"), - Ranting(11, 4, 3, 2, "15-06-2024 15:05:12"), - Ranting(12, 4, 4, 1, "15-06-2024 15:05:16") +ratings = [ + Rating(1, 1, 1, 5, "15-06-2024 15:04:32"), + Rating(2, 1, 2, 6, "15-06-2024 15:04:36"), + Rating(3, 2, 1, 7, "15-06-2024 15:04:40"), + Rating(4, 2, 2, 8, "15-06-2024 15:04:44"), + Rating(5, 2, 3, 9, "15-06-2024 15:04:48"), + Rating(6, 3, 1, 10, "15-06-2024 15:04:52"), + Rating(7, 3, 2, 6, "15-06-2024 15:04:56"), + Rating(8, 3, 3, 5, "15-06-2024 15:05:00"), + Rating(9, 4, 1, 4, "15-06-2024 15:05:04"), + Rating(10, 4, 2, 3, "15-06-2024 15:05:08"), + Rating(11, 4, 3, 2, "15-06-2024 15:05:12"), + Rating(12, 4, 4, 1, "15-06-2024 15:05:16") ] diff --git a/analitics/RantingsAnalitics.py b/analitics/RantingsAnalitics.py deleted file mode 100644 index 05e58624..00000000 --- a/analitics/RantingsAnalitics.py +++ /dev/null @@ -1,33 +0,0 @@ -from User import User -from Ranting import Ranting -from MockUps import users,rantings - - -def get_rantings(): - return rantings - - -def get_number_of_ratings(): - return get_rantings().__len__() - - -def get_rantings_in_time(begin_time, end_time): - pass - - -def get_rantings_of_movie(movie_id): - results = [] - for ranting in rantings: - if ranting.movie_id == movie_id: - results.append(ranting) - return results - - -def get_rantings_of_movie_numbers(movie_id): - return get_rantings_of_movie(movie_id).__len__() - - -def get_rantings_of_movie_in_time(movie_id, begin_time, end_time): - pass - - diff --git a/analitics/Ranting.py b/analitics/Rating.py similarity index 92% rename from analitics/Ranting.py rename to analitics/Rating.py index 7a75ede6..9b16ffbd 100644 --- a/analitics/Ranting.py +++ b/analitics/Rating.py @@ -1,6 +1,6 @@ -class Ranting: +class Rating: def __init__(self, id, movie_id, user_id, ranting, time): self.id=id self.movie_id=movie_id diff --git a/analitics/RatingsAnalytics.py b/analitics/RatingsAnalytics.py new file mode 100644 index 00000000..aa88b007 --- /dev/null +++ b/analitics/RatingsAnalytics.py @@ -0,0 +1,33 @@ +from User import User +from Rating import Rating +from MockUps import users, ratings + + +def get_ratings(): + return ratings + + +def get_number_of_ratings(): + return len(get_ratings()) + + +def get_ratings_in_time(begin_time, end_time): + pass + + +def get_ratings_of_movie(movie_id): + results = [] + for ranting in ratings: + if ranting.movie_id == movie_id: + results.append(ranting) + return results + + +def get_ratings_of_movie_numbers(movie_id): + return len(get_ratings_of_movie(movie_id)) + + +def get_ratings_of_movie_in_time(movie_id, begin_time, end_time): + pass + + diff --git a/analitics/User.py b/analitics/User.py index 9dfb649d..dcba95f7 100644 --- a/analitics/User.py +++ b/analitics/User.py @@ -1,7 +1,4 @@ - class User: - def __init__(self,id,name): - self.id=id - self.name=name - - + def __init__(self, user_id, name): + self.id = user_id + self.name = name diff --git a/analitics/UserAnalitics.py b/analitics/UserAnalitics.py deleted file mode 100644 index da78fca1..00000000 --- a/analitics/UserAnalitics.py +++ /dev/null @@ -1,25 +0,0 @@ -from User import User -from Ranting import Ranting -from MockUps import users,rantings - - -def get_number_of_users(): - return users.__len__() - - -def get_user_rantings(user_id): - results=[] - for ranting in rantings: - if ranting.user_id==user_id: - results.append(ranting) - return results - - -def get_user_rantings_number(user_id): - return get_user_rantings(user_id).__len__() - - -def get_user_rantings_in_time(user_id, begin, end): - pass - - diff --git a/analitics/UserAnalytics.py b/analitics/UserAnalytics.py new file mode 100644 index 00000000..187c5898 --- /dev/null +++ b/analitics/UserAnalytics.py @@ -0,0 +1,25 @@ +from User import User +from Rating import Rating +from MockUps import users, ratings + + +def get_number_of_users(): + return len(users) + + +def get_user_ratings(user_id): + results = [] + for rating in ratings: + if rating.user_id == user_id: + results.append(rating) + return results + + +def get_user_ratings_number(user_id): + return len(get_user_ratings(user_id)) + + +def get_user_ratings_in_time(user_id, begin, end): + pass + + diff --git a/analitics/main.py b/analitics/main.py index 139597f9..59039ac6 100644 --- a/analitics/main.py +++ b/analitics/main.py @@ -1,2 +1,51 @@ +from flask import Flask, request, jsonify +from flask_caching import Cache +import psycopg2 +import pandas +import json +from configparser import ConfigParser +from datetime import datetime + + +app = Flask(__name__) +cache = Cache(config={'CACHE_TYPE': 'SimpleCache'}) +db_connector = None +conn = None + + +@app.route("/api/get_number_of_ratings") +@cache.cached(timeout=1000) +def get_number_of_ratings(): + cursor = conn.cursor() + cursor.execute("select count(*) as num_of_ratings from ratings") + res = cursor.fetchall() + + return len(res['num_of_ratings']) + + +if __name__ == "__main__": + config = ConfigParser() + config.read("init_scripts/constants.ini") + + while True: + try: + conn = psycopg2.connect( + host=config["postgres"]["host"], + database=config["postgres"]["database"], + user=config["postgres"]["user"], + password=config["postgres"]["password"], + port=int(config["postgres"]["port"]) + ) + + except Exception: + print("Trying to connect with database") + continue + else: + break + + cache.init_app(app) + app.run(host="0.0.0.0", port=8090, debug=True) + + conn.close() diff --git a/movie_recommendations/movie_recommender.py b/movie_recommendations/movie_recommender.py index 40e15c30..11624a73 100644 --- a/movie_recommendations/movie_recommender.py +++ b/movie_recommendations/movie_recommender.py @@ -1,14 +1,13 @@ -import hashlib -import json -from datetime import datetime - import pandas as pd import numpy as np from ast import literal_eval from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import cosine_similarity + from flask import Flask, request, jsonify from flask_caching import Cache +import hashlib +import json config = { @@ -147,7 +146,6 @@ def make_cache_key(): def AI_recommendations(): ids = request.get_json() recommendations = recommender.get_recommendations(ids) - recommendations[0] = datetime.now() return jsonify(recommendations) From b133fa1b07689d3ba57a39d3c067e84994ae6777 Mon Sep 17 00:00:00 2001 From: gzub04 Date: Sun, 16 Jun 2024 21:27:17 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Naprawiony=20stuff=20Alkaratusa,=20przerobi?= =?UTF-8?q?one=20na=20flask,=20ma=C5=82e=20poprawki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- analitics/MockUps.py | 24 ---- analitics/Rating.py | 9 -- analitics/RatingsAnalytics.py | 33 ------ analitics/User.py | 4 - analitics/UserAnalytics.py | 25 ---- analitics/main.py | 51 -------- connector/Include/analytics.py | 116 +++++++++++++++++++ connector/Include/frontend_AI_connector.py | 34 +++--- connector/Include/init_scripts/constants.ini | 2 +- movie_recommendations/Test.http | 15 --- test_scripts/Test.http | 24 ++++ 11 files changed, 160 insertions(+), 177 deletions(-) delete mode 100644 analitics/MockUps.py delete mode 100644 analitics/Rating.py delete mode 100644 analitics/RatingsAnalytics.py delete mode 100644 analitics/User.py delete mode 100644 analitics/UserAnalytics.py delete mode 100644 analitics/main.py create mode 100644 connector/Include/analytics.py delete mode 100644 movie_recommendations/Test.http create mode 100644 test_scripts/Test.http diff --git a/analitics/MockUps.py b/analitics/MockUps.py deleted file mode 100644 index 9c409534..00000000 --- a/analitics/MockUps.py +++ /dev/null @@ -1,24 +0,0 @@ -from User import User -from Rating import Rating - -users = [ - User(1, "Lola"), - User(2, "Tony"), - User(3, "Lorry"), - User(4, "Betty") -] - -ratings = [ - Rating(1, 1, 1, 5, "15-06-2024 15:04:32"), - Rating(2, 1, 2, 6, "15-06-2024 15:04:36"), - Rating(3, 2, 1, 7, "15-06-2024 15:04:40"), - Rating(4, 2, 2, 8, "15-06-2024 15:04:44"), - Rating(5, 2, 3, 9, "15-06-2024 15:04:48"), - Rating(6, 3, 1, 10, "15-06-2024 15:04:52"), - Rating(7, 3, 2, 6, "15-06-2024 15:04:56"), - Rating(8, 3, 3, 5, "15-06-2024 15:05:00"), - Rating(9, 4, 1, 4, "15-06-2024 15:05:04"), - Rating(10, 4, 2, 3, "15-06-2024 15:05:08"), - Rating(11, 4, 3, 2, "15-06-2024 15:05:12"), - Rating(12, 4, 4, 1, "15-06-2024 15:05:16") -] diff --git a/analitics/Rating.py b/analitics/Rating.py deleted file mode 100644 index 9b16ffbd..00000000 --- a/analitics/Rating.py +++ /dev/null @@ -1,9 +0,0 @@ - - -class Rating: - def __init__(self, id, movie_id, user_id, ranting, time): - self.id=id - self.movie_id=movie_id - self.user_id=user_id - self.ranting=ranting - self.time=time diff --git a/analitics/RatingsAnalytics.py b/analitics/RatingsAnalytics.py deleted file mode 100644 index aa88b007..00000000 --- a/analitics/RatingsAnalytics.py +++ /dev/null @@ -1,33 +0,0 @@ -from User import User -from Rating import Rating -from MockUps import users, ratings - - -def get_ratings(): - return ratings - - -def get_number_of_ratings(): - return len(get_ratings()) - - -def get_ratings_in_time(begin_time, end_time): - pass - - -def get_ratings_of_movie(movie_id): - results = [] - for ranting in ratings: - if ranting.movie_id == movie_id: - results.append(ranting) - return results - - -def get_ratings_of_movie_numbers(movie_id): - return len(get_ratings_of_movie(movie_id)) - - -def get_ratings_of_movie_in_time(movie_id, begin_time, end_time): - pass - - diff --git a/analitics/User.py b/analitics/User.py deleted file mode 100644 index dcba95f7..00000000 --- a/analitics/User.py +++ /dev/null @@ -1,4 +0,0 @@ -class User: - def __init__(self, user_id, name): - self.id = user_id - self.name = name diff --git a/analitics/UserAnalytics.py b/analitics/UserAnalytics.py deleted file mode 100644 index 187c5898..00000000 --- a/analitics/UserAnalytics.py +++ /dev/null @@ -1,25 +0,0 @@ -from User import User -from Rating import Rating -from MockUps import users, ratings - - -def get_number_of_users(): - return len(users) - - -def get_user_ratings(user_id): - results = [] - for rating in ratings: - if rating.user_id == user_id: - results.append(rating) - return results - - -def get_user_ratings_number(user_id): - return len(get_user_ratings(user_id)) - - -def get_user_ratings_in_time(user_id, begin, end): - pass - - diff --git a/analitics/main.py b/analitics/main.py deleted file mode 100644 index 59039ac6..00000000 --- a/analitics/main.py +++ /dev/null @@ -1,51 +0,0 @@ -from flask import Flask, request, jsonify -from flask_caching import Cache -import psycopg2 -import pandas -import json -from configparser import ConfigParser -from datetime import datetime - - - - -app = Flask(__name__) -cache = Cache(config={'CACHE_TYPE': 'SimpleCache'}) -db_connector = None -conn = None - - -@app.route("/api/get_number_of_ratings") -@cache.cached(timeout=1000) -def get_number_of_ratings(): - cursor = conn.cursor() - cursor.execute("select count(*) as num_of_ratings from ratings") - res = cursor.fetchall() - - return len(res['num_of_ratings']) - - -if __name__ == "__main__": - config = ConfigParser() - config.read("init_scripts/constants.ini") - - while True: - try: - conn = psycopg2.connect( - host=config["postgres"]["host"], - database=config["postgres"]["database"], - user=config["postgres"]["user"], - password=config["postgres"]["password"], - port=int(config["postgres"]["port"]) - ) - - except Exception: - print("Trying to connect with database") - continue - else: - break - - cache.init_app(app) - app.run(host="0.0.0.0", port=8090, debug=True) - - conn.close() diff --git a/connector/Include/analytics.py b/connector/Include/analytics.py new file mode 100644 index 00000000..25d2a159 --- /dev/null +++ b/connector/Include/analytics.py @@ -0,0 +1,116 @@ +from flask import Flask, request, jsonify +from flask_caching import Cache +import psycopg2 +import pandas +import json +from configparser import ConfigParser +from datetime import datetime + + +app = Flask(__name__) +cache = Cache(config={'CACHE_TYPE': 'SimpleCache'}) +db_connector = None +conn = None + + +@app.route("/api/get_number_of_ratings", methods=["GET"]) +@cache.cached(timeout=500) +def get_number_of_ratings(): + cursor = conn.cursor() + cursor.execute("select count(*) as num_of_ratings from ratings") + res = cursor.fetchall() + + cursor.close() + + return jsonify(res[0]), 200 + + +@app.route("/api/get_movie_ratings/", methods=["GET"]) +@cache.cached(timeout=50) +def get_movie_ratings(movie_id): + cursor = conn.cursor() + ratings = {} + rating_values = [5, 4, 3, 2, 1] + + for rating in rating_values: + cursor.execute(""" + SELECT COUNT(*) as count + FROM ratings + WHERE rating = %s AND movie_ID = %s; + """, (rating, movie_id)) + result = cursor.fetchone() + ratings[f'{rating}_star'] = result[0] + + cursor.close() + + return jsonify(ratings), 200 + + +@app.route("/api/get_users_number", methods=["GET"]) +@cache.cached(timeout=50) +def get_number_of_users(): + cursor = conn.cursor() + cursor.execute("select count(*) as num_of_users from users") + res = cursor.fetchall() + + cursor.close() + + return jsonify(res[0]), 200 + + +@app.route("/api/get_movie_rating_avg/", methods=["GET"]) +@cache.cached(timeout=50) +def get_movie_rating_avg(movie_id): + cursor = conn.cursor() + cursor.execute(""" + SELECT AVG(rating) as avg_rating + FROM ratings + WHERE movie_ID = %s; + """, (movie_id,)) + res = cursor.fetchall() + + cursor.close() + + return jsonify(res[0]), 200 + + +@app.route("/api/get_user_ratings/", methods=["GET"]) +@cache.cached(timeout=50) +def get_user_ratings(user_id): + cursor = conn.cursor() + cursor.execute(""" + SELECT * + FROM ratings + WHERE oauth_ID = %s; + """, (user_id,)) + res = cursor.fetchall() + + cursor.close() + + return jsonify(res), 200 + + +if __name__ == "__main__": + config = ConfigParser() + config.read("init_scripts/constants.ini") + + while True: + try: + conn = psycopg2.connect( + host=config["postgres"]["host"], + database=config["postgres"]["database"], + user=config["postgres"]["user"], + password=config["postgres"]["password"], + port=int(config["postgres"]["port"]) + ) + + except Exception: + print("Trying to connect with database") + continue + else: + break + + cache.init_app(app) + app.run(host="0.0.0.0", port=8090, debug=True) + + conn.close() diff --git a/connector/Include/frontend_AI_connector.py b/connector/Include/frontend_AI_connector.py index 03209c79..93471e64 100644 --- a/connector/Include/frontend_AI_connector.py +++ b/connector/Include/frontend_AI_connector.py @@ -8,32 +8,36 @@ from datetime import datetime app = Flask(__name__) -cache = Cache(config={'CACHE_TYPE': 'SimpleCache'}) +cache = Cache(config={'CACHE_TYPE': 'SimpleCache'}) db_connector = None conn = None movie_list = None + def error_decorator(fun): def inner1(*args, **kwargs): try: fun(*args, **kwargs) except psycopg2.DatabaseError: return jsonify({"status": "Something... unexpected has occured :sweat_smile:"}), 500 - + return inner1 + @app.route("/", methods=["GET"]) @cache.cached(timeout=69) def hello(): return jsonify({"response": "Hello there", "time": datetime.now()}), 200 -#endpoint do wyciągania danych o userze + +# endpoint do wyciągania danych o userze @app.route("/api/v3/get/", methods=["GET"]) def access_user(username): return jsonify({"us": "er"}), 200 -#endpoint służący do zapisu danych nowostworzonego użytkownika, podajemy mu -#id z oautha oraz login + +# endpoint służący do zapisu danych nowo stworzonego użytkownika, podajemy mu +# id z oautha oraz login @app.route("/api/v3/add//", methods=["POST"]) def add_user(oauth_ID, username): cursor = conn.cursor() @@ -50,11 +54,11 @@ def add_user(oauth_ID, username): conn.commit() cursor.close() - + return jsonify({"status": "success"}), 200 -#roboczy endpoint służący do wyciąganiu rekomendacji +# roboczy endpoint służący do wyciąganiu rekomendacji @app.route("/api/v3/ai/", methods=["GET"]) def get_recommendations(oauth_ID): #request od frontu na rekomendacje @@ -62,6 +66,7 @@ def get_recommendations(oauth_ID): #przesłanie danych do return jsonify({"movies": ["3", "Wiedźmin 3", "Najlepszy."]}), 200 + @app.route("/api/v3/get_movie/", methods=["GET"]) def get_movie(movie_ID): movie_info = movie_list.loc[movie_list['movie_id'] == movie_ID] @@ -69,8 +74,8 @@ def get_movie(movie_ID): return jsonify({"status": "Movie with ID {} doesn't exist".format(movie_ID)} ), 500 - cast = json.loads(movie_info["cast"][0].replace('\\"','"')) - crew = json.loads(movie_info["crew"][0].replace('\\"','"')) + cast = json.loads(movie_info["cast"][0].replace('\\"', '"')) + crew = json.loads(movie_info["crew"][0].replace('\\"', '"')) output_json = {"movie_id": movie_ID, "title": movie_info["title"][0], @@ -79,6 +84,7 @@ def get_movie(movie_ID): return jsonify(output_json), 200 + @app.route("/api/v3/rate_movie///", methods=["POST"]) def rate_movie(uID, movie_ID, rating): movie_info = movie_list.loc[movie_list['movie_id'] == int(movie_ID)] @@ -115,7 +121,7 @@ def rate_movie(uID, movie_ID, rating): conn.commit() cursor.close() - + return jsonify({"status": "success"}), 200 @@ -133,17 +139,15 @@ if __name__ == "__main__": port=int(config["postgres"]["port"]) ) - except Exception: + except Exception as e: + print(e) print("Trying to connect with database") continue else: break - movie_list = pandas.read_csv(config["movie"]["csv_path"]) cache.init_app(app) - app.run(host="0.0.0.0",port=8090, debug=True) - + app.run(host="localhost", port=8090, debug=True) conn.close() - diff --git a/connector/Include/init_scripts/constants.ini b/connector/Include/init_scripts/constants.ini index e922b009..fe1fddda 100644 --- a/connector/Include/init_scripts/constants.ini +++ b/connector/Include/init_scripts/constants.ini @@ -1,5 +1,5 @@ [postgres] -host=db +host=localhost database=test_db user=root password=root diff --git a/movie_recommendations/Test.http b/movie_recommendations/Test.http deleted file mode 100644 index b4ba46b7..00000000 --- a/movie_recommendations/Test.http +++ /dev/null @@ -1,15 +0,0 @@ -### GET request to example server -GET http://127.0.0.1:5000/boop - -### - -POST http://127.0.0.1:5000/api/v3/AI_recommendations -Content-Type: application/json - -[ - 49026, - 155, - 312113 -] - -### diff --git a/test_scripts/Test.http b/test_scripts/Test.http new file mode 100644 index 00000000..33636784 --- /dev/null +++ b/test_scripts/Test.http @@ -0,0 +1,24 @@ +### +GET http://127.0.0.1:8090/get/boop +### +POST http://127.0.0.1:8090/api/v3/AI_recommendations +Content-Type: application/json + +[ + 49026, + 155, + 312113 +] +### +POST http://127.0.0.1:8090/api/v3/add/1111/boop +### +POST http://127.0.0.1:8090/api/v3/rate_movie/1111/155/4 +### +GET http://localhost:8090/api/get_number_of_ratings +### +GET http://localhost:8090/api/get_movie_ratings/155 +### +GET http://localhost:8090/api/get_users_number +### +GET http://localhost:8090/api/get_movie_rating_avg/155 +###