Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/requirements.txt

This file was deleted.

24 changes: 12 additions & 12 deletions src/server/controllers/example_controller.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 1 addition & 2 deletions src/server/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
jwt-auth @ git+https://github.com/agabrielcorujo/jwt-auth.git
boto3
jwt-auth @ git+https://github.com/agabrielcorujo/jwt-auth.git@main
32 changes: 6 additions & 26 deletions src/server/routes/example_route.py
Original file line number Diff line number Diff line change
@@ -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)

6 changes: 6 additions & 0 deletions src/server/schemas/schema.py
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion src/server/server.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down
File renamed without changes.
14 changes: 14 additions & 0 deletions src/server/services/service.py
Original file line number Diff line number Diff line change
@@ -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 ...