-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathmain.py
More file actions
101 lines (74 loc) · 2.83 KB
/
Copy pathmain.py
File metadata and controls
101 lines (74 loc) · 2.83 KB
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
from urllib.parse import unquote
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from typing import Literal
from utils import database
from utils.logger import Logger
app = FastAPI()
logger = Logger(__name__)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def root():
return {"status": "Api Is Running"}
@app.post("/api/auth")
async def api_auth(request: Request):
data: dict = await request.json()
logger.info(f"Auth Data: {data}")
request_type: Literal["new_auth", "check_auth", "get_shops"] = data.get(
"request_type"
)
email: str = data.get("email")
password: str = data.get("password")
if request_type == "new_auth":
results = await database.new_auth(email, data)
elif request_type == "check_auth":
results = await database.check_auth(email, password)
elif request_type == "check_account_type":
results = await database.check_account_type(email)
return results
@app.post("/api/shops")
async def api_shops(request: Request):
data: dict = await request.json()
logger.info(f"Shops Data: {data}")
request_type: Literal["get_shops"] = data.get("request_type")
medicine_name = data.get("medicine_name")
medicine_name = unquote(medicine_name)
user_location = data.get("user_location")
if request_type == "get_shops":
results = await database.get_shops(medicine_name, user_location)
return results
@app.post("/api/medicine")
async def api_med(request: Request):
data: dict = await request.json()
logger.info(f"Med_data: {data}")
request_type: Literal["update_med", "get_med", "add_med","delete_med"] = data.get("request_type")
email: str = data.get("email")
Med_data: dict = data.get("Med_data")
if request_type == "add_med":
results = await database.add_medicine(email, Med_data)
elif request_type == "update_med":
results = await database.update_medicine(email, Med_data)
elif request_type == "get_med":
results = await database.get_medicines(email)
elif request_type == "get_all_med":
results = await database.get_all_medicine()
elif request_type == "delete_med":
results = await database.delete_medicine(email,data.get('id'))
return results
@app.post("/api/buy")
async def api_buy(request: Request):
data: dict = await request.json()
logger.info(f"Med_data: {data}")
request_type: Literal["buy_med"] = data.get("request_type")
email: str = data.get("email")
medicine_id: int = data.get("medicine_id")
sold_quantity: int = data.get("sold_quantity")
if request_type == "buy_med":
results = await database.buy_medicines(email, medicine_id, sold_quantity)
return results