Initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from fastapi import APIRouter, status, Depends, HTTPException, Header
|
||||
from backend.code.middlewares.private_middleware import PrivateMiddleware
|
||||
from backend.code.models.requests.account_login import AccountLoginRequest
|
||||
from backend.code.models.requests.account_recover import AccountRecoverRequest
|
||||
from backend.code.models.responses.session_token import SessionTokenResponse
|
||||
from backend.code.modules.sessions.controller import SessionsController
|
||||
|
||||
routes = APIRouter(prefix="/account", tags=['Session'])
|
||||
middleware = PrivateMiddleware()
|
||||
controller = SessionsController()
|
||||
|
||||
@routes.post('/login', status_code = status.HTTP_200_OK, response_model = SessionTokenResponse)
|
||||
def Login(data: AccountLoginRequest):
|
||||
session = controller.Login(data.Username, data.Password, data.Domain)
|
||||
if type(session) is not SessionTokenResponse:
|
||||
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
return session
|
||||
|
||||
@routes.post('/token/validate', status_code = status.HTTP_200_OK, response_model = SessionTokenResponse)
|
||||
def ValidateToken(token: str = Depends(middleware.HasToken)):
|
||||
validation = controller.ValidateToken(token)
|
||||
if type(validation) is not SessionTokenResponse:
|
||||
raise HTTPException(status_code = status.HTTP_401_UNAUTHORIZED)
|
||||
|
||||
return validation
|
||||
|
||||
@routes.post('/logout', status_code = status.HTTP_204_NO_CONTENT)
|
||||
def Logout(token: str = Depends(middleware.HasToken)):
|
||||
closed = controller.Logout(token)
|
||||
if closed is None:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
|
||||
@routes.post('/recover', status_code = status.HTTP_200_OK)
|
||||
def RecoverAccount(data: AccountRecoverRequest):
|
||||
recovered = controller.RecoverAccount(data.Username, data.Domain)
|
||||
if recovered is None:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
@routes.post("/recover/validate/{token}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
def ValidateTokenRecoverAccount(token: str):
|
||||
account = controller.ValidateTokenRecoverAccount(token)
|
||||
if account is None:
|
||||
raise HTTPException(status_code = status.HTTP_404_NOT_FOUND)
|
||||
Reference in New Issue
Block a user