diff --git a/src/requirements.txt b/src/requirements.txt deleted file mode 100644 index 1a5bbf3..0000000 --- a/src/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -jwt-auth @ git+https://github.com/agabrielcorujo/jwt-auth.git \ No newline at end of file diff --git a/src/server/controllers/example_controller.py b/src/server/controllers/example_controller.py index 66474bb..fb880ca 100644 --- a/src/server/controllers/example_controller.py +++ b/src/server/controllers/example_controller.py @@ -1,21 +1,21 @@ -from jwt_auth.db import safe_query #syntax: result = safe_query(query,(param1,param2...),fetch="one/all",insert=True/False) -import boto3 as aws -from dotenv import load_dotenv import os +from schemas.schema import SampleRequest +from services.service import sample_service,AppError +from fastapi import HTTPException -class AppError(Exception): - def __init__(self, message: str, status_code: int = 400): - self.message = message - self.status_code = status_code - super().__init__(message) -def sample_function(userid:str,param:type)->type: +def sample_controller(request:SampleRequest)->type: - if ... : #something goes wrong + try: - raise AppError(message="something went wrong",status_code="some status code") + result = sample_service(request.request_param1) - return ... + except AppError as error: + + raise HTTPException( + detail=error.message, + status_code=error.status_code + ) import hashlib diff --git a/src/server/requirements.txt b/src/server/requirements.txt index a22e59f..3eb23a6 100644 --- a/src/server/requirements.txt +++ b/src/server/requirements.txt @@ -1,2 +1 @@ -jwt-auth @ git+https://github.com/agabrielcorujo/jwt-auth.git -boto3 \ No newline at end of file +jwt-auth @ git+https://github.com/agabrielcorujo/jwt-auth.git@main \ No newline at end of file diff --git a/src/server/routes/example_route.py b/src/server/routes/example_route.py index de23b46..3cb740d 100644 --- a/src/server/routes/example_route.py +++ b/src/server/routes/example_route.py @@ -1,40 +1,20 @@ -from fastapi import Depends,APIRouter, HTTPException +from fastapi import Depends,APIRouter from fastapi.security import OAuth2PasswordBearer -from pydantic import BaseModel -from typing import Optional -from jwt_auth.jwt_auth import decode_access_token +from jwt_auth.services.auth_services import decode_access_token from controllers.example_controller import ( - AppError, - sample_function + sample_controller ) +import schemas.schema as schema router = APIRouter() oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/login") -class SampleRequest(BaseModel): #used for post, put, patch and delete requests - request_param1: str #required parameter - request_param2: Optional[str] = None #not required, optional parameter - @router.get("/sample-endpoint") -def sample_endpoint(Request:SampleRequest,token:str = Depends(oauth2_scheme)): +def sample_endpoint(Request:schema.SampleRequest,token:str = Depends(oauth2_scheme)): user_id = decode_access_token(token) #this automatically raises 401 unauthorized if the token is invalid - try: - #do something by calling functions in business_logic.py - variable1 = Request.request_param1 - - sample_function(user_id,variable1) - ... - - except AppError as Err: - - raise HTTPException( - status_code=Err.status_code, - detail=Err.message - ) - - return {"response":"some response"} + return sample_controller(Request) diff --git a/src/server/schemas/schema.py b/src/server/schemas/schema.py new file mode 100644 index 0000000..3447db8 --- /dev/null +++ b/src/server/schemas/schema.py @@ -0,0 +1,6 @@ +from typing import Optional +from pydantic import BaseModel + +class SampleRequest(BaseModel): #used for post, put, patch and delete requests + request_param1: str #required parameter + request_param2: Optional[str] = None #not required, optional parameter \ No newline at end of file diff --git a/src/server/server.py b/src/server/server.py index 6745626..c12f128 100644 --- a/src/server/server.py +++ b/src/server/server.py @@ -1,5 +1,5 @@ from fastapi import FastAPI -from jwt_auth.auth_router import router as auth_router +from jwt_auth.services.auth_services import router as auth_router from routes.example_route import router as business_router from fastapi.middleware.cors import CORSMiddleware diff --git a/src/server/LLM/chatbot.ipynb b/src/server/services/LLM/chatbot.ipynb similarity index 100% rename from src/server/LLM/chatbot.ipynb rename to src/server/services/LLM/chatbot.ipynb diff --git a/src/server/services/service.py b/src/server/services/service.py new file mode 100644 index 0000000..aa11af9 --- /dev/null +++ b/src/server/services/service.py @@ -0,0 +1,14 @@ +class AppError(Exception): + def __init__(self, message: str, status_code: int = 400): + self.message = message + self.status_code = status_code + super().__init__(message) + +def sample_service(variable:str): + + condition = ... + + if condition: + raise AppError("error message",400) + + return ... \ No newline at end of file