-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8 from ArielMAJ/release/0.3.0
Release/0.3.0
- Loading branch information
Showing
37 changed files
with
206 additions
and
101 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
{ | ||
"python.testing.pytestArgs": ["tests"], | ||
"python.testing.unittestEnabled": false, | ||
"python.testing.pytestEnabled": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from api.entrypoints.router import router | ||
|
||
__all__ = ["router"] |
File renamed without changes.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
api/entrypoints/v1/root_response/views.py → api/entrypoints/root_response.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,10 @@ | ||
from api.entrypoints import monitoring, v1 | ||
from api.entrypoints import monitoring, random_response, root_response, user | ||
from fastapi.routing import APIRouter | ||
|
||
api_router = APIRouter() | ||
api_router.include_router(monitoring.router) | ||
api_router.include_router(v1.router, prefix="/v1", tags=["v1"]) | ||
router = APIRouter() | ||
router.include_router(monitoring.router, tags=["Monitoring"]) | ||
router.include_router( | ||
random_response.router, prefix="/random_number", tags=["Random Number"] | ||
) | ||
router.include_router(root_response.router, prefix="", tags=["Root Response"]) | ||
router.include_router(user.router, prefix="/user", tags=["User"]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
from api.database.models.model_base import ModelBase | ||
from fastapi import HTTPException, status | ||
|
||
|
||
class NotFoundException(HTTPException): | ||
def __init__(self, model: ModelBase): | ||
super().__init__( | ||
status_code=status.HTTP_404_NOT_FOUND, | ||
detail=f"{model.__name__} not found", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
from datetime import datetime | ||
from typing import Optional | ||
|
||
from pydantic import BaseModel, field_serializer | ||
|
||
|
||
class BaseDBSchema(BaseModel): | ||
id: int | ||
created_at: datetime | ||
updated_at: datetime | ||
deleted_at: Optional[datetime] | ||
|
||
class Config: | ||
orm_mode = True | ||
|
||
@field_serializer("created_at", "updated_at", "deleted_at") | ||
def serialize_dt(self, dt: Optional[datetime]): | ||
if not dt: | ||
return dt | ||
return dt.strftime("%d-%m-%Y %H:%M:%S") |
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,13 @@ | ||
from api.schemas.base_db_schema import BaseDBSchema | ||
from pydantic import BaseModel | ||
|
||
|
||
class UserCreate(BaseModel): | ||
name: str | ||
email: str | ||
password: str | ||
|
||
|
||
class UserOut(BaseDBSchema): | ||
name: str | ||
email: str |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
from typing import List, Union | ||
|
||
from api.database.models.users import User | ||
from api.exceptions.http_exceptions import NotFoundException | ||
from api.schemas.user import UserCreate | ||
from loguru import logger | ||
|
||
|
||
class UserService: | ||
async def get_all(self) -> List[User]: | ||
""" | ||
Retrieve a list of all users. | ||
Returns: | ||
List[User]: A list of User objects. | ||
""" | ||
return await User.get_all() | ||
|
||
async def get_user(self, user_id: int) -> User: | ||
""" | ||
Retrieve a user by ID. | ||
Args: | ||
user_id (int): The ID of the user. | ||
Returns: | ||
User: The User object. | ||
""" | ||
user: Union[User, None] = await User.get_by_id(user_id) | ||
if not user: | ||
raise NotFoundException(User) | ||
return user | ||
|
||
async def create_user(self, user: UserCreate) -> User: | ||
""" | ||
Create a new user. | ||
Args: | ||
user (UserCreate): The user data. | ||
Returns: | ||
User: The created User object. | ||
""" | ||
logger.info(user.model_dump()) | ||
return await User.new(**user.model_dump()) | ||
|
||
async def update_user(self, user_id: int, updated_user: UserCreate): | ||
""" | ||
Update a user by ID. | ||
Args: | ||
user_id (int): The ID of the user. | ||
user (UserUpdate): The updated user data. | ||
Returns: | ||
User: The updated User object. | ||
""" | ||
user: User = await self.get_user(user_id) | ||
return await user.update(**updated_user.model_dump()) | ||
|
||
async def delete_user(self, user_id: int): | ||
""" | ||
Delete a user by ID. | ||
Args: | ||
user_id (int): The ID of the user. | ||
""" | ||
|
||
user: User = await self.get_user(user_id) | ||
await user.delete() | ||
return {"message": "User deleted successfully"} |
Oops, something went wrong.