-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.py
More file actions
113 lines (86 loc) · 3 KB
/
main.py
File metadata and controls
113 lines (86 loc) · 3 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
102
103
104
105
106
107
108
109
110
111
112
113
import asyncio
from fastapi import FastAPI,Request
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
from pydantic import ValidationError
from middleware import token_auth
from config.database import db
# from config.databaseAzure import conn
from module.Request import UserAuthReq,ExampleReq
from module.Response import UserRes
from module.Request.Account import RegisterUserReq
from module.Request.Account import LogInReq
from module.Response.BaseRes import BaseResp
from service import auth,aigenerating,ipsessions
from starlette.requests import Request
from typing import List
app = FastAPI()
app.add_middleware(token_auth.CheckValueMiddleware, skip_paths=["/test/","/register/","/login/"])
# Example methods
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/test/")
async def test_call():
raport_ref = db.child("test")
data = raport_ref.get().val()
return {"message": data}
@app.post("/user/")
async def UserAuthentication(item:UserAuthReq.UserAuth):
response_text = await auth.UserAuth(item)
return response_text
@app.post("/aitest/")
async def aitest_call(msg:ExampleReq.SimpleReq):
response_text = await aigenerating.aibasicresponse(msg)
return {"message": response_text}
@app.get("/get-ip")
async def get_ip(request: Request):
x_forwarded_for = request.headers.get('X-Forwarded-For')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.client.host
return {"ip": ip}
@app.post("/ip-list/")
async def iplist_call(sess:ExampleReq.SimpleReq):
response_text = await ipsessions.getSessions(sess.msg)
return response_text
# Lindita Suta controllers
#LOGIN/LogOut & REGISTER
@app.post("/register/")
async def RegisterNewUser(item:RegisterUserReq.RegUserReq):
response_text = await auth.registerNewUser(item)
return response_text
@app.post("/login/")
async def RegisterNewUser(item:LogInReq.LogInUsr):
response_text = await auth.logIn(item)
return response_text
# @app.get("/logout/{token}")
# async def RegisterNewUser(token: str):
# response_text = await auth.logout(token)
# return response_text
@app.get("/logout/")
async def RegisterNewUser(request: Request):
token = request.headers.get("token")
response_text = await auth.logout(token)
return response_text
#TESTING
@app.get("/test__getuser/")
async def test__get_users(request: Request):
username = request.state.username
users = await auth.getUser(username)
return users
@app.get("/test-getusers/")
async def test_get_users():
users = await auth.fetch_users_Test()
return users
@app.post("/test-register/")
async def RegisterNewUser(item:UserAuthReq.UserAuth):
response_text = await auth.registerNewUser_Test(item)
return response_text
@app.post("/testnew-register/")
async def RegisterNewUser(item:UserAuthReq.UserAuth):
response_text = await auth.register_user(item)
return response_text
#FINISH TESTING
# endregion LS