From 8676d88dcb2a4750011db9d97fe6df39f7bf5ac4 Mon Sep 17 00:00:00 2001 From: Kosh Date: Sun, 15 Oct 2023 14:38:32 +0530 Subject: [PATCH] Implement getting data using rest api --- backend/api-docs.txt | 37 +++++++++++++++++++++++++++++++++++++ backend/rest_api.py | 24 +++++++++++++++++++++--- 2 files changed, 58 insertions(+), 3 deletions(-) diff --git a/backend/api-docs.txt b/backend/api-docs.txt index 7af4ae6..84f0cdc 100644 --- a/backend/api-docs.txt +++ b/backend/api-docs.txt @@ -86,3 +86,40 @@ Add User:- This will give a response status 200 with no data if login is done. This will return a 403 if the user gave wrong name or password. _____________________ + + +_____________________ +Get Data:- + URL:- /get_data + + Method:- POST + + Data:- None + + Response:- + 200 OK:- + Data:- All user data + Note:- + data:- { + entry_name: { + field_name: field_value + } + } + 403 Forbidden:- + Data:- Text that can be directly displayed to the user + Note:- Not logged in + + + Example:- + { + "Amazon": { + "Username": "Kosh", + "Password": "Pass1234" + }, + "Matrix": { + "Username": "Kosh", + "Email": "kosh@fake.com", + "id": "@kosh:matrix.com" + } + } +_____________________ diff --git a/backend/rest_api.py b/backend/rest_api.py index 27c6ed2..ae02b43 100644 --- a/backend/rest_api.py +++ b/backend/rest_api.py @@ -1,9 +1,9 @@ from os import mkdir, path from flask import Flask, request, send_file, abort, Response from werkzeug.datastructures import ImmutableMultiDict - -from data_handler import DataHandler import appdirs +import json +from data_handler import DataHandler app: Flask = Flask(__name__) @@ -39,7 +39,7 @@ class QueryHandler: """ This is the bridge between the frontend and DataHandler class """ - __data_handler: DataHandler + __data_handler: DataHandler| None = None @staticmethod @app.post("/login") @@ -103,3 +103,21 @@ class QueryHandler: ) return Response(status=200) + + @staticmethod + @app.post("/get_data") + def get_data() -> Response: + """ + Return all user data + """ + if QueryHandler.__data_handler is None: + return Response( + "Not logged in", + 403, + content_type="text/plain" + ) + return Response( + json.dumps(QueryHandler.__data_handler.get_data()), + 200, + content_type="application/json" + )