Skip to content

Commit

Permalink
feat: #52 create basic structure with fastapi (#55)
Browse files Browse the repository at this point in the history
- added some models and schemas

- still using sqlachemy
  • Loading branch information
miguelcsx authored Aug 31, 2024
1 parent e2dfde7 commit 95276ef
Show file tree
Hide file tree
Showing 75 changed files with 394 additions and 1,500 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -162,4 +162,4 @@ cython_debug/
# Other folders
data/db/*.db
data/reports/*
data/mindmaps/*
data/mindmaps/*
1 change: 0 additions & 1 deletion .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ disable=
format,
invalid-name,
missing-docstring,
no-else-return,
possibly-used-before-assignment,
protected-access,
redefined-builtin,
Expand Down
File renamed without changes.
File renamed without changes.
26 changes: 26 additions & 0 deletions app/api/endpoints/courses.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# app/api/endpoints/courses.py

from fastapi import (
APIRouter,
Depends,
# HTTPException,
)
from sqlalchemy.orm import Session
from app.database.session import get_db
from app.schemas.course import (
CourseCreate,
# CourseUpdate,
CourseInDBBase,
)
from app.repositories.course_repository import (
create_course,
)

router = APIRouter()

@router.post("/courses/", response_model=CourseInDBBase)
def create_course_endpoint(
course: CourseCreate,
db: Session = Depends(get_db)
) -> CourseInDBBase:
return create_course(db, course)
71 changes: 71 additions & 0 deletions app/api/endpoints/user.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# app/api/endpoints/user.py

from fastapi import (
APIRouter,
Depends,
HTTPException,
)
from sqlalchemy.orm import Session
from app.database.session import get_db
from app.schemas.user import (
UserCreate,
UserUpdate,
UserInDBBase,
)
from app.repositories.user_repository import (
create_user,
get_user,
get_users,
update_user,
delete_user,
)

router = APIRouter()


@router.post("/users/", response_model=UserInDBBase)
def create_user_endpoint(
user: UserCreate,
db: Session = Depends(get_db)
) -> UserInDBBase:
return create_user(db, user)


@router.get("/users/{user_id}", response_model=UserInDBBase)
def read_user(user_id: int, db: Session = Depends(get_db)) -> UserInDBBase:
user = get_user(db, user_id)
if user is None:
raise HTTPException(status_code=404, detail="User not found")
return user


@router.get("/users/", response_model=list[UserInDBBase])
def read_users(
skip: int = 0,
limit: int = 10,
db: Session = Depends(get_db)
) -> list[UserInDBBase]:
return get_users(db, skip, limit)


@router.put("/users/{user_id}", response_model=UserInDBBase)
def update_user_endpoint(
user_id: int,
user: UserUpdate,
db: Session = Depends(get_db)
) -> UserInDBBase:
db_user = get_user(db, user_id)
if db_user is None:
raise HTTPException(status_code=404, detail="User not found")
return update_user(db, user_id, user.model_dump())


@router.delete("/users/{user_id}", response_model=UserInDBBase)
def delete_user_endpoint(
user_id: int,
db: Session = Depends(get_db)
) -> UserInDBBase:
user = delete_user(db, user_id)
if user is None:
raise HTTPException(status_code=404, detail="User not found")
return user
45 changes: 45 additions & 0 deletions app/api/v_1/endpoints.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# app/api/v1/endpoints.py

from fastapi import (
APIRouter,
Depends,
)
from sqlalchemy.orm import Session
from app.database.models import (
User,
Course,
Topic,
)
from app.database.session import get_db

router = APIRouter()


@router.get("/users/", response_model=None)
def read_users(
skip: int = 0,
limit: int = 10,
db: Session = Depends(get_db)
) -> list[User]:
users = db.query(User).offset(skip).limit(limit).all()
return users


@router.get("/courses/", response_model=None)
def read_courses(
skip: int = 0,
limit: int = 10,
db: Session = Depends(get_db)
) -> list[Course]:
courses = db.query(Course).offset(skip).limit(limit).all()
return courses


@router.get("/topics/", response_model=None)
def read_topics(
skip: int = 0,
limit: int = 10,
db: Session = Depends(get_db)
) -> list[Topic]:
topics = db.query(Topic).offset(skip).limit(limit).all()
return topics
21 changes: 0 additions & 21 deletions app/business/models/subject.py

This file was deleted.

25 changes: 0 additions & 25 deletions app/business/models/topic.py

This file was deleted.

21 changes: 0 additions & 21 deletions app/business/models/user.py

This file was deleted.

40 changes: 0 additions & 40 deletions app/business/services/service.py

This file was deleted.

46 changes: 0 additions & 46 deletions app/business/services/subject_service.py

This file was deleted.

41 changes: 0 additions & 41 deletions app/business/services/topic_service.py

This file was deleted.

37 changes: 0 additions & 37 deletions app/business/services/user_service.py

This file was deleted.

Loading

0 comments on commit 95276ef

Please sign in to comment.