feat: init CourseUpdates backend CRUD

This commit is contained in:
swve 2024-04-15 22:36:02 +02:00
parent 171feabe99
commit d1a620b2e2
4 changed files with 260 additions and 2 deletions

View file

@ -2,6 +2,11 @@ from typing import List
from fastapi import APIRouter, Depends, UploadFile, Form, Request
from sqlmodel import Session
from src.core.events.database import get_db_session
from src.db.course_updates import (
CourseUpdateCreate,
CourseUpdateRead,
CourseUpdateUpdate,
)
from src.db.users import PublicUser
from src.db.courses import (
CourseCreate,
@ -19,6 +24,7 @@ from src.services.courses.courses import (
delete_course,
update_course_thumbnail,
)
from src.services.courses.updates import create_update, delete_update, get_updates_by_course_uuid, update_update
router = APIRouter()
@ -51,7 +57,9 @@ async def api_create_course(
learnings=learnings,
tags=tags,
)
return await create_course(request, org_id, course, current_user, db_session, thumbnail)
return await create_course(
request, org_id, course, current_user, db_session, thumbnail
)
@router.put("/{course_uuid}/thumbnail")
@ -145,3 +153,64 @@ async def api_delete_course(
"""
return await delete_course(request, course_uuid, current_user, db_session)
@ router.get("/{course_uuid}/updates")
async def api_get_course_updates(
request: Request,
course_uuid: str,
db_session: Session = Depends(get_db_session),
current_user: PublicUser = Depends(get_current_user),
) -> List[CourseUpdateRead]:
"""
Get Course Updates by course_uuid
"""
return await get_updates_by_course_uuid(request, course_uuid, current_user, db_session)
@router.post("/{course_uuid}/update")
async def api_create_course_update(
request: Request,
course_uuid: str,
update_object: CourseUpdateCreate,
db_session: Session = Depends(get_db_session),
current_user: PublicUser = Depends(get_current_user),
) -> CourseUpdateRead:
"""
Create new Course Update
"""
return await create_update(
request, course_uuid, update_object, current_user, db_session
)
@router.put("/{course_uuid}/update/{courseupdate_uuid}")
async def api_update_course_update(
request: Request,
course_uuid: str,
courseupdate_uuid: str,
update_object: CourseUpdateUpdate,
db_session: Session = Depends(get_db_session),
current_user: PublicUser = Depends(get_current_user),
) -> CourseUpdateRead:
"""
Update Course Update by courseupdate_uuid
"""
return await update_update(
request, courseupdate_uuid, update_object, current_user, db_session
)
@router.delete("/{course_uuid}/update/{courseupdate_uuid}")
async def api_delete_course_update(
request: Request,
course_uuid: str,
courseupdate_uuid: str,
db_session: Session = Depends(get_db_session),
current_user: PublicUser = Depends(get_current_user),
):
"""
Delete Course Update by courseupdate_uuid
"""
return await delete_update(request, courseupdate_uuid, current_user, db_session)