mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: add response models to endpoints
This commit is contained in:
parent
7738316200
commit
71279a1294
20 changed files with 148 additions and 68 deletions
|
|
@ -26,3 +26,5 @@ class OrganizationCreate(OrganizationBase):
|
|||
class OrganizationRead(OrganizationBase):
|
||||
id: int
|
||||
org_uuid: str
|
||||
creation_date: str
|
||||
update_date: str
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class RoleTypeEnum(str, Enum):
|
|||
class RoleBase(SQLModel):
|
||||
name: str
|
||||
description: Optional[str]
|
||||
rights: Optional[Union[Rights,dict]] = Field(default={}, sa_column=Column(JSON))
|
||||
rights: Optional[Union[Rights, dict]] = Field(default={}, sa_column=Column(JSON))
|
||||
|
||||
|
||||
class Role(RoleBase, table=True):
|
||||
|
|
@ -52,13 +52,21 @@ class Role(RoleBase, table=True):
|
|||
update_date: str = ""
|
||||
|
||||
|
||||
class RoleRead(RoleBase):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
org_id: int = Field(default=None, foreign_key="organization.id")
|
||||
role_type: RoleTypeEnum = RoleTypeEnum.TYPE_GLOBAL
|
||||
role_uuid: str
|
||||
creation_date: str
|
||||
update_date: str
|
||||
|
||||
|
||||
class RoleCreate(RoleBase):
|
||||
org_id: Optional[int] = Field(default=None, foreign_key="organization.id")
|
||||
|
||||
|
||||
|
||||
class RoleUpdate(SQLModel):
|
||||
role_id: int = Field(default=None, foreign_key="role.id")
|
||||
name: Optional[str]
|
||||
description: Optional[str]
|
||||
rights: Optional[Union[Rights,dict]] = Field(default={}, sa_column=Column(JSON))
|
||||
rights: Optional[Union[Rights, dict]] = Field(default={}, sa_column=Column(JSON))
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from fastapi import APIRouter, Depends, UploadFile, Form, Request
|
||||
from src.db.blocks import BlockRead
|
||||
from src.core.events.database import get_db_session
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.blocks.block_types.imageBlock.imageBlock import (
|
||||
|
|
@ -30,7 +31,7 @@ async def api_create_image_file_block(
|
|||
activity_id: str = Form(),
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Create new image file
|
||||
"""
|
||||
|
|
@ -43,7 +44,7 @@ async def api_get_image_file_block(
|
|||
block_uuid: str,
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Get image file
|
||||
"""
|
||||
|
|
@ -62,7 +63,7 @@ async def api_create_video_file_block(
|
|||
activity_id: str = Form(),
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Create new video file
|
||||
"""
|
||||
|
|
@ -75,7 +76,7 @@ async def api_get_video_file_block(
|
|||
block_uuid: str,
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Get video file
|
||||
"""
|
||||
|
|
@ -94,7 +95,7 @@ async def api_create_pdf_file_block(
|
|||
activity_id: str = Form(),
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Create new pdf file
|
||||
"""
|
||||
|
|
@ -107,7 +108,7 @@ async def api_get_pdf_file_block(
|
|||
block_uuid: str,
|
||||
db_session=Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> BlockRead:
|
||||
"""
|
||||
Get pdf file
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from typing import List
|
||||
from fastapi import APIRouter, Depends, UploadFile, Form, Request
|
||||
from src.db.activities import ActivityCreate, ActivityUpdate
|
||||
from src.db.activities import ActivityCreate, ActivityRead, ActivityUpdate
|
||||
from src.db.users import PublicUser
|
||||
from src.core.events.database import get_db_session
|
||||
from src.services.courses.activities.activities import (
|
||||
|
|
@ -26,7 +27,7 @@ async def api_create_activity(
|
|||
activity_object: ActivityCreate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Create new activity
|
||||
"""
|
||||
|
|
@ -39,7 +40,7 @@ async def api_get_activity(
|
|||
activity_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Get single activity by activity_id
|
||||
"""
|
||||
|
|
@ -54,7 +55,7 @@ async def api_get_activities(
|
|||
coursechapter_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> List[ActivityRead]:
|
||||
"""
|
||||
Get CourseChapter activities
|
||||
"""
|
||||
|
|
@ -67,7 +68,7 @@ async def api_update_activity(
|
|||
activity_object: ActivityUpdate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Update activity by activity_id
|
||||
"""
|
||||
|
|
@ -98,7 +99,7 @@ async def api_create_video_activity(
|
|||
current_user: PublicUser = Depends(get_current_user),
|
||||
video_file: UploadFile | None = None,
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Create new activity
|
||||
"""
|
||||
|
|
@ -118,7 +119,7 @@ async def api_create_external_video_activity(
|
|||
external_video: ExternalVideo,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Create new activity
|
||||
"""
|
||||
|
|
@ -135,7 +136,7 @@ async def api_create_documentpdf_activity(
|
|||
current_user: PublicUser = Depends(get_current_user),
|
||||
pdf_file: UploadFile | None = None,
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> ActivityRead:
|
||||
"""
|
||||
Create new activity
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -60,7 +60,9 @@ async def api_get_chapter_meta(
|
|||
"""
|
||||
Get Chapters metadata
|
||||
"""
|
||||
return await get_depreceated_course_chapters(request, course_id, current_user, db_session)
|
||||
return await get_depreceated_course_chapters(
|
||||
request, course_id, current_user, db_session
|
||||
)
|
||||
|
||||
|
||||
@router.put("/order/{course_id}")
|
||||
|
|
@ -85,12 +87,15 @@ async def api_get_chapter_by(
|
|||
course_id: int,
|
||||
page: int,
|
||||
limit: int,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
) -> List[ChapterRead]:
|
||||
"""
|
||||
Get Course Chapters by page and limit
|
||||
"""
|
||||
return await get_course_chapters(request, course_id, db_session, page, limit)
|
||||
return await get_course_chapters(
|
||||
request, course_id, db_session, current_user, page, limit
|
||||
)
|
||||
|
||||
|
||||
@router.put("/{coursechapter_id}")
|
||||
|
|
@ -118,6 +123,4 @@ async def api_delete_coursechapter(
|
|||
Delete CourseChapters by ID
|
||||
"""
|
||||
|
||||
return await delete_chapter(
|
||||
request, coursechapter_id, current_user, db_session
|
||||
)
|
||||
return await delete_chapter(request, coursechapter_id, current_user, db_session)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
from typing import List
|
||||
from fastapi import APIRouter, Depends, Request
|
||||
from src.core.events.database import get_db_session
|
||||
from src.db.collections import CollectionCreate, CollectionUpdate
|
||||
from src.db.collections import CollectionCreate, CollectionRead, CollectionUpdate
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.users.users import PublicUser
|
||||
from src.services.courses.collections import (
|
||||
|
|
@ -21,7 +22,7 @@ async def api_create_collection(
|
|||
collection_object: CollectionCreate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> CollectionRead:
|
||||
"""
|
||||
Create new Collection
|
||||
"""
|
||||
|
|
@ -34,7 +35,7 @@ async def api_get_collection(
|
|||
collection_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> CollectionRead:
|
||||
"""
|
||||
Get single collection by ID
|
||||
"""
|
||||
|
|
@ -49,7 +50,7 @@ async def api_get_collections_by(
|
|||
org_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> List[CollectionRead]:
|
||||
"""
|
||||
Get collections by page and limit
|
||||
"""
|
||||
|
|
@ -62,7 +63,7 @@ async def api_update_collection(
|
|||
collection_object: CollectionUpdate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
) -> CollectionRead:
|
||||
"""
|
||||
Update collection by ID
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
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.users import PublicUser
|
||||
from src.db.courses import CourseCreate, CourseUpdate
|
||||
from src.db.courses import CourseCreate, CourseRead, CourseUpdate, FullCourseReadWithTrail
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.courses.courses import (
|
||||
create_course,
|
||||
|
|
@ -31,7 +32,7 @@ async def api_create_course(
|
|||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
thumbnail: UploadFile | None = None,
|
||||
):
|
||||
) -> CourseRead:
|
||||
"""
|
||||
Create new Course
|
||||
"""
|
||||
|
|
@ -55,7 +56,7 @@ async def api_create_course_thumbnail(
|
|||
thumbnail: UploadFile | None = None,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> CourseRead:
|
||||
"""
|
||||
Update new Course Thumbnail
|
||||
"""
|
||||
|
|
@ -70,7 +71,7 @@ async def api_get_course(
|
|||
course_id: str,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> CourseRead:
|
||||
"""
|
||||
Get single Course by course_id
|
||||
"""
|
||||
|
|
@ -85,7 +86,7 @@ async def api_get_course_meta(
|
|||
course_id: int,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> FullCourseReadWithTrail:
|
||||
"""
|
||||
Get single Course Metadata (chapters, activities) by course_id
|
||||
"""
|
||||
|
|
@ -102,9 +103,9 @@ async def api_get_course_by_orgslug(
|
|||
org_slug: str,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> List[CourseRead]:
|
||||
"""
|
||||
Get houses by page and limit
|
||||
Get courses by page and limit
|
||||
"""
|
||||
return await get_courses_orgslug(
|
||||
request, current_user, org_slug, db_session, page, limit
|
||||
|
|
@ -117,7 +118,7 @@ async def api_update_course(
|
|||
course_object: CourseUpdate,
|
||||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
):
|
||||
) -> CourseRead:
|
||||
"""
|
||||
Update Course by course_id
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
from fastapi import APIRouter, Depends, Request
|
||||
from src.db.install import InstallRead
|
||||
from src.core.events.database import get_db_session
|
||||
from src.db.organizations import OrganizationCreate
|
||||
from src.db.users import UserCreate
|
||||
|
|
@ -18,8 +19,10 @@ router = APIRouter()
|
|||
|
||||
@router.post("/start")
|
||||
async def api_create_install_instance(
|
||||
request: Request, data: dict, db_session=Depends(get_db_session),
|
||||
):
|
||||
request: Request,
|
||||
data: dict,
|
||||
db_session=Depends(get_db_session),
|
||||
) -> InstallRead:
|
||||
# create install
|
||||
install = await create_install_instance(request, data, db_session)
|
||||
|
||||
|
|
@ -27,7 +30,9 @@ async def api_create_install_instance(
|
|||
|
||||
|
||||
@router.get("/latest")
|
||||
async def api_get_latest_install_instance(request: Request, db_session=Depends(get_db_session),):
|
||||
async def api_get_latest_install_instance(
|
||||
request: Request, db_session=Depends(get_db_session)
|
||||
) -> InstallRead:
|
||||
# get latest created install
|
||||
install = await get_latest_install_instance(request, db_session=db_session)
|
||||
|
||||
|
|
@ -35,7 +40,10 @@ async def api_get_latest_install_instance(request: Request, db_session=Depends(g
|
|||
|
||||
|
||||
@router.post("/default_elements")
|
||||
async def api_install_def_elements(request: Request, db_session=Depends(get_db_session),):
|
||||
async def api_install_def_elements(
|
||||
request: Request,
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
elements = await install_default_elements(request, {}, db_session)
|
||||
|
||||
return elements
|
||||
|
|
@ -43,7 +51,9 @@ async def api_install_def_elements(request: Request, db_session=Depends(get_db_s
|
|||
|
||||
@router.post("/org")
|
||||
async def api_install_org(
|
||||
request: Request, org: OrganizationCreate, db_session=Depends(get_db_session),
|
||||
request: Request,
|
||||
org: OrganizationCreate,
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
organization = await install_create_organization(request, org, db_session)
|
||||
|
||||
|
|
@ -52,7 +62,10 @@ async def api_install_org(
|
|||
|
||||
@router.post("/user")
|
||||
async def api_install_user(
|
||||
request: Request, data: UserCreate, org_slug: str, db_session=Depends(get_db_session),
|
||||
request: Request,
|
||||
data: UserCreate,
|
||||
org_slug: str,
|
||||
db_session=Depends(get_db_session),
|
||||
):
|
||||
user = await install_create_organization_user(request, data, org_slug, db_session)
|
||||
|
||||
|
|
@ -61,8 +74,11 @@ async def api_install_user(
|
|||
|
||||
@router.post("/update")
|
||||
async def api_update_install_instance(
|
||||
request: Request, data: dict, step: int, db_session=Depends(get_db_session),
|
||||
):
|
||||
request: Request,
|
||||
data: dict,
|
||||
step: int,
|
||||
db_session=Depends(get_db_session),
|
||||
) -> InstallRead:
|
||||
request.app.db["installs"]
|
||||
|
||||
# get latest created install
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
from typing import List
|
||||
from fastapi import APIRouter, Depends, Request, UploadFile
|
||||
from sqlmodel import Session
|
||||
from src.db.users import PublicUser
|
||||
from src.db.organizations import OrganizationCreate, OrganizationUpdate
|
||||
from src.db.organizations import (
|
||||
Organization,
|
||||
OrganizationCreate,
|
||||
OrganizationRead,
|
||||
OrganizationUpdate,
|
||||
)
|
||||
from src.core.events.database import get_db_session
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.orgs.orgs import (
|
||||
|
|
@ -24,7 +30,7 @@ async def api_create_org(
|
|||
org_object: OrganizationCreate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
) -> OrganizationRead:
|
||||
"""
|
||||
Create new organization
|
||||
"""
|
||||
|
|
@ -37,7 +43,7 @@ async def api_get_org(
|
|||
org_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
) -> OrganizationRead:
|
||||
"""
|
||||
Get single Org by ID
|
||||
"""
|
||||
|
|
@ -50,7 +56,7 @@ async def api_get_org_by_slug(
|
|||
org_slug: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
) -> OrganizationRead:
|
||||
"""
|
||||
Get single Org by Slug
|
||||
"""
|
||||
|
|
@ -84,7 +90,7 @@ async def api_user_orgs(
|
|||
limit: int,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
) -> List[Organization]:
|
||||
"""
|
||||
Get orgs by page and limit by user
|
||||
"""
|
||||
|
|
@ -99,7 +105,7 @@ async def api_update_org(
|
|||
org_object: OrganizationUpdate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
) -> OrganizationRead:
|
||||
"""
|
||||
Update Org by ID
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from fastapi import APIRouter, Depends, Request
|
||||
from sqlmodel import Session
|
||||
from src.core.events.database import get_db_session
|
||||
from src.db.roles import RoleCreate, RoleUpdate
|
||||
from src.db.roles import RoleCreate, RoleRead, RoleUpdate
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.roles.roles import create_role, delete_role, read_role, update_role
|
||||
from src.db.users import PublicUser
|
||||
|
|
@ -16,7 +16,7 @@ async def api_create_role(
|
|||
role_object: RoleCreate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
)-> RoleRead:
|
||||
"""
|
||||
Create new role
|
||||
"""
|
||||
|
|
@ -29,7 +29,7 @@ async def api_get_role(
|
|||
role_id: str,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
)-> RoleRead:
|
||||
"""
|
||||
Get single role by role_id
|
||||
"""
|
||||
|
|
@ -42,7 +42,7 @@ async def api_update_role(
|
|||
role_object: RoleUpdate,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
)-> RoleRead:
|
||||
"""
|
||||
Update role by role_id
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -38,9 +38,7 @@ async def api_get_user_trail(
|
|||
"""
|
||||
Get a user trails
|
||||
"""
|
||||
return await get_user_trails(
|
||||
request, user=user, db_session=db_session
|
||||
)
|
||||
return await get_user_trails(request, user=user, db_session=db_session)
|
||||
|
||||
|
||||
@router.get("/org_slug/{org_id}/trail")
|
||||
|
|
@ -58,9 +56,6 @@ async def api_get_trail_by_org_id(
|
|||
)
|
||||
|
||||
|
||||
# Courses in trail
|
||||
|
||||
|
||||
@router.post("/add_course/{course_id}")
|
||||
async def api_add_course_to_trail(
|
||||
request: Request,
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ async def api_delete_user(
|
|||
db_session: Session = Depends(get_db_session),
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
user_id: int,
|
||||
):
|
||||
) :
|
||||
"""
|
||||
Delete User
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from uuid import uuid4
|
|||
from fastapi import HTTPException, status, UploadFile, Request
|
||||
from sqlmodel import Session, select
|
||||
from src.db.activities import Activity
|
||||
from src.db.blocks import Block, BlockTypeEnum
|
||||
from src.db.blocks import Block, BlockRead, BlockTypeEnum
|
||||
from src.db.courses import Course
|
||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||
from src.services.users.users import PublicUser
|
||||
|
|
@ -65,6 +65,8 @@ async def create_image_block(
|
|||
db_session.commit()
|
||||
db_session.refresh(block)
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
|
||||
|
||||
|
|
@ -75,6 +77,9 @@ async def get_image_block(
|
|||
block = db_session.exec(statement).first()
|
||||
|
||||
if block:
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
else:
|
||||
raise HTTPException(
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from uuid import uuid4
|
|||
from fastapi import HTTPException, status, UploadFile, Request
|
||||
from sqlmodel import Session, select
|
||||
from src.db.activities import Activity
|
||||
from src.db.blocks import Block, BlockTypeEnum
|
||||
from src.db.blocks import Block, BlockRead, BlockTypeEnum
|
||||
from src.db.courses import Course
|
||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||
|
||||
|
|
@ -66,6 +66,8 @@ async def create_pdf_block(
|
|||
db_session.commit()
|
||||
db_session.refresh(block)
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
|
||||
|
||||
|
|
@ -80,4 +82,6 @@ async def get_pdf_block(
|
|||
status_code=status.HTTP_404_NOT_FOUND, detail="Video file does not exist"
|
||||
)
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from uuid import uuid4
|
|||
from fastapi import HTTPException, status, UploadFile, Request
|
||||
from sqlmodel import Session, select
|
||||
from src.db.activities import Activity
|
||||
from src.db.blocks import Block, BlockTypeEnum
|
||||
from src.db.blocks import Block, BlockRead, BlockTypeEnum
|
||||
from src.db.courses import Course
|
||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||
|
||||
|
|
@ -66,6 +66,8 @@ async def create_video_block(
|
|||
db_session.commit()
|
||||
db_session.refresh(block)
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
|
||||
|
||||
|
|
@ -80,4 +82,6 @@ async def get_video_block(
|
|||
status_code=status.HTTP_404_NOT_FOUND, detail="Video file does not exist"
|
||||
)
|
||||
|
||||
block = BlockRead.from_orm(block)
|
||||
|
||||
return block
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ async def get_activity(
|
|||
# RBAC check
|
||||
await rbac_check(request, activity.activity_uuid, current_user, "read", db_session)
|
||||
|
||||
activity = ActivityRead.from_orm(activity)
|
||||
|
||||
return activity
|
||||
|
||||
|
||||
|
|
@ -130,6 +132,8 @@ async def update_activity(
|
|||
db_session.commit()
|
||||
db_session.refresh(activity)
|
||||
|
||||
activity = ActivityRead.from_orm(activity)
|
||||
|
||||
return activity
|
||||
|
||||
|
||||
|
|
@ -182,7 +186,7 @@ async def get_activities(
|
|||
coursechapter_id: str,
|
||||
current_user: PublicUser | AnonymousUser,
|
||||
db_session: Session,
|
||||
):
|
||||
) -> list[ActivityRead]:
|
||||
statement = select(ChapterActivity).where(
|
||||
ChapterActivity.chapter_id == coursechapter_id
|
||||
)
|
||||
|
|
@ -197,6 +201,8 @@ async def get_activities(
|
|||
# RBAC check
|
||||
await rbac_check(request, "activity_x", current_user, "read", db_session)
|
||||
|
||||
activities = [ActivityRead.from_orm(activity) for activity in activities]
|
||||
|
||||
return activities
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@ async def get_course(
|
|||
# RBAC check
|
||||
await rbac_check(request, course.course_uuid, current_user, "read", db_session)
|
||||
|
||||
course = CourseRead.from_orm(course)
|
||||
|
||||
return course
|
||||
|
||||
|
||||
|
|
@ -188,6 +190,8 @@ async def update_course_thumbnail(
|
|||
db_session.commit()
|
||||
db_session.refresh(course)
|
||||
|
||||
course = CourseRead.from_orm(course)
|
||||
|
||||
return course
|
||||
|
||||
|
||||
|
|
@ -223,6 +227,8 @@ async def update_course(
|
|||
db_session.commit()
|
||||
db_session.refresh(course)
|
||||
|
||||
course = CourseRead.from_orm(course)
|
||||
|
||||
return course
|
||||
|
||||
|
||||
|
|
@ -277,6 +283,8 @@ async def get_courses_orgslug(
|
|||
|
||||
courses = db_session.exec(statement)
|
||||
|
||||
courses = [CourseRead.from_orm(course) for course in courses]
|
||||
|
||||
return courses
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from uuid import uuid4
|
|||
from fastapi import HTTPException, Request
|
||||
from sqlalchemy import desc
|
||||
from sqlmodel import Session, select
|
||||
from src.db.install import Install
|
||||
from src.db.install import Install, InstallRead
|
||||
from src.db.organizations import Organization, OrganizationCreate
|
||||
from src.db.roles import Permission, Rights, Role, RoleTypeEnum
|
||||
from src.db.user_organizations import UserOrganization
|
||||
|
|
@ -41,6 +41,8 @@ async def create_install_instance(request: Request, data: dict, db_session: Sess
|
|||
# refresh install instance
|
||||
db_session.refresh(install)
|
||||
|
||||
install = InstallRead.from_orm(install)
|
||||
|
||||
return install
|
||||
|
||||
|
||||
|
|
@ -54,6 +56,8 @@ async def get_latest_install_instance(request: Request, db_session: Session):
|
|||
detail="No install instance found",
|
||||
)
|
||||
|
||||
install = InstallRead.from_orm(install)
|
||||
|
||||
return install
|
||||
|
||||
|
||||
|
|
@ -78,6 +82,8 @@ async def update_install_instance(
|
|||
# refresh install instance
|
||||
db_session.refresh(install)
|
||||
|
||||
install = InstallRead.from_orm(install)
|
||||
|
||||
return install
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@ async def get_organization(
|
|||
# RBAC check
|
||||
await rbac_check(request, org.org_uuid, current_user, "read", db_session)
|
||||
|
||||
org = OrganizationRead.from_orm(org)
|
||||
|
||||
return org
|
||||
|
||||
|
||||
|
|
@ -61,6 +63,8 @@ async def get_organization_by_slug(
|
|||
# RBAC check
|
||||
await rbac_check(request, org.org_uuid, current_user, "read", db_session)
|
||||
|
||||
org = OrganizationRead.from_orm(org)
|
||||
|
||||
return org
|
||||
|
||||
|
||||
|
|
@ -160,6 +164,8 @@ async def update_org(
|
|||
db_session.commit()
|
||||
db_session.refresh(org)
|
||||
|
||||
org = OrganizationRead.from_orm(org)
|
||||
|
||||
return org
|
||||
|
||||
|
||||
|
|
@ -197,6 +203,7 @@ async def update_org_logo(
|
|||
db_session.commit()
|
||||
db_session.refresh(org)
|
||||
|
||||
|
||||
return {"detail": "Logo updated"}
|
||||
|
||||
|
||||
|
|
@ -244,7 +251,7 @@ async def get_orgs_by_user(
|
|||
user_id: str,
|
||||
page: int = 1,
|
||||
limit: int = 10,
|
||||
):
|
||||
) -> list[Organization]:
|
||||
statement = (
|
||||
select(Organization)
|
||||
.join(UserOrganization)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from src.security.rbac.rbac import (
|
|||
authorization_verify_if_user_is_author,
|
||||
)
|
||||
from src.db.users import AnonymousUser, PublicUser
|
||||
from src.db.roles import Role, RoleCreate, RoleUpdate
|
||||
from src.db.roles import Role, RoleCreate, RoleRead, RoleUpdate
|
||||
from fastapi import HTTPException, Request
|
||||
from datetime import datetime
|
||||
|
||||
|
|
@ -32,6 +32,8 @@ async def create_role(
|
|||
db_session.commit()
|
||||
db_session.refresh(role)
|
||||
|
||||
role = RoleRead(**role.dict())
|
||||
|
||||
return role
|
||||
|
||||
|
||||
|
|
@ -52,6 +54,8 @@ async def read_role(
|
|||
# RBAC check
|
||||
await rbac_check(request, current_user, "read", role.role_uuid, db_session)
|
||||
|
||||
role = RoleRead(**role.dict())
|
||||
|
||||
return role
|
||||
|
||||
|
||||
|
|
@ -90,6 +94,8 @@ async def update_role(
|
|||
db_session.commit()
|
||||
db_session.refresh(role)
|
||||
|
||||
role = RoleRead(**role.dict())
|
||||
|
||||
return role
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue