diff --git a/front/services/files/documents.ts b/front/services/files/documents.ts index 1faa3546..c0f04d61 100644 --- a/front/services/files/documents.ts +++ b/front/services/files/documents.ts @@ -7,14 +7,14 @@ export async function uploadNewPDFFile(file: any, lecture_id: string) { formData.append("file_object", file); formData.append("lecture_id", lecture_id); - return fetch(`${getAPIUrl()}files/document`, RequestBodyForm("POST", formData)) + return fetch(`${getAPIUrl()}blocks/document`, RequestBodyForm("POST", formData)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } export async function getPDFFile(file_id: string) { // todo : add course id to url - return fetch(`${getAPIUrl()}files/document?file_id=${file_id}`, RequestBody("GET", null)) + return fetch(`${getAPIUrl()}blocks/document?file_id=${file_id}`, RequestBody("GET", null)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } diff --git a/front/services/files/images.ts b/front/services/files/images.ts index 35f449f4..157a74fa 100644 --- a/front/services/files/images.ts +++ b/front/services/files/images.ts @@ -7,14 +7,14 @@ export async function uploadNewImageFile(file: any, lecture_id: string) { formData.append("file_object", file); formData.append("lecture_id", lecture_id); - return fetch(`${getAPIUrl()}files/picture`, RequestBodyForm("POST", formData)) + return fetch(`${getAPIUrl()}blocks/image`, RequestBodyForm("POST", formData)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } export async function getImageFile(file_id: string) { // todo : add course id to url - return fetch(`${getAPIUrl()}files/picture?file_id=${file_id}`, RequestBody("GET", null)) + return fetch(`${getAPIUrl()}blocks/image?file_id=${file_id}`, RequestBody("GET", null)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } diff --git a/front/services/files/video.ts b/front/services/files/video.ts index eaa10e22..3fadc936 100644 --- a/front/services/files/video.ts +++ b/front/services/files/video.ts @@ -7,13 +7,13 @@ export async function uploadNewVideoFile(file: any, lecture_id: string) { formData.append("file_object", file); formData.append("lecture_id", lecture_id); - return fetch(`${getAPIUrl()}files/video`, RequestBodyForm("POST", formData)) + return fetch(`${getAPIUrl()}blocks/video`, RequestBodyForm("POST", formData)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } export async function getVideoFile(file_id: string) { - return fetch(`${getAPIUrl()}files/video?file_id=${file_id}`, RequestBody("GET", null)) + return fetch(`${getAPIUrl()}blocks/video?file_id=${file_id}`, RequestBody("GET", null)) .then((result) => result.json()) .catch((error) => console.log("error", error)); } diff --git a/src/main.py b/src/main.py index 9dbfb5e9..6361f91b 100644 --- a/src/main.py +++ b/src/main.py @@ -1,5 +1,5 @@ from fastapi import APIRouter -from src.routers import activity, blocks, users, auth, houses, orgs, roles, files +from src.routers import activity, blocks, users, auth, houses, orgs, roles from src.routers.courses import chapters, collections, courses,lectures @@ -12,7 +12,6 @@ global_router.include_router(auth.router, prefix="/auth", tags=["auth"]) global_router.include_router(houses.router, prefix="/houses", tags=["houses"]) global_router.include_router(orgs.router, prefix="/orgs", tags=["orgs"]) global_router.include_router(roles.router, prefix="/roles", tags=["roles"]) -global_router.include_router(files.router, prefix="/files", tags=["files"]) global_router.include_router(blocks.router, prefix="/blocks", tags=["blocks"]) global_router.include_router(courses.router, prefix="/courses", tags=["courses"]) global_router.include_router(chapters.router, prefix="/chapters", tags=["chapters"]) diff --git a/src/routers/blocks.py b/src/routers/blocks.py index f65e2d68..8d44e9f2 100644 --- a/src/routers/blocks.py +++ b/src/routers/blocks.py @@ -1,8 +1,8 @@ from fastapi import APIRouter, Depends, UploadFile, Form, Request from src.dependencies.auth import get_current_user from fastapi import HTTPException, status, UploadFile -from src.services.blocks.files.pictures import create_picture_file, get_picture_file -from src.services.blocks.files.videos import create_video_file, get_video_file +from src.services.blocks.imageBlock.images import create_image_file, get_image_file +from src.services.blocks.videoBlock.videos import create_video_file, get_video_file from src.services.blocks.pdfBlock.documents import create_document_file, get_document_file from src.services.blocks.quizBlock.quizBlock import create_quiz_block, get_quiz_block_answers, get_quiz_block_options, quizBlock from src.services.users import PublicUser @@ -10,12 +10,12 @@ from src.services.users import PublicUser router = APIRouter() -@router.post("/picture") -async def api_create_picture_file_block(request: Request, file_object: UploadFile, lecture_id: str = Form(), current_user: PublicUser = Depends(get_current_user)): +@router.post("/image") +async def api_create_image_file_block(request: Request, file_object: UploadFile, lecture_id: str = Form(), current_user: PublicUser = Depends(get_current_user)): """ - Create new picture file + Create new image file """ - return await create_picture_file(request, file_object, lecture_id) + return await create_image_file(request, file_object, lecture_id) @router.post("/video") @@ -26,12 +26,12 @@ async def api_create_video_file_block(request: Request, file_object: UploadFile, return await create_video_file(request, file_object, lecture_id) -@router.get("/picture") -async def api_get_picture_file_block(request: Request, file_id: str, current_user: PublicUser = Depends(get_current_user)): +@router.get("/image") +async def api_get_image_file_block(request: Request, file_id: str, current_user: PublicUser = Depends(get_current_user)): """ - Get picture file + Get image file """ - return await get_picture_file(request, file_id, current_user) + return await get_image_file(request, file_id, current_user) @router.get("/video") diff --git a/src/routers/files.py b/src/routers/files.py deleted file mode 100644 index 593fed48..00000000 --- a/src/routers/files.py +++ /dev/null @@ -1,56 +0,0 @@ -from fastapi import APIRouter, Depends, UploadFile, Form, Request -from src.dependencies.auth import get_current_user -from fastapi import HTTPException, status, UploadFile -from src.services.blocks.files.pictures import create_picture_file, get_picture_file -from src.services.blocks.files.videos import create_video_file, get_video_file -from src.services.blocks.pdfBlock.documents import create_document_file, get_document_file -from src.services.users import PublicUser - -router = APIRouter() - - -@router.post("/picture") -async def api_create_picture_file(request: Request, file_object: UploadFile, lecture_id: str = Form(), current_user: PublicUser = Depends(get_current_user)): - """ - Create new picture file - """ - return await create_picture_file(request, file_object, lecture_id) - - -@router.post("/video") -async def api_create_video_file(request: Request, file_object: UploadFile, lecture_id: str = Form(), current_user: PublicUser = Depends(get_current_user)): - """ - Create new video file - """ - return await create_video_file(request, file_object, lecture_id) - - -@router.get("/picture") -async def api_get_picture_file(request: Request, file_id: str, current_user: PublicUser = Depends(get_current_user)): - """ - Get picture file - """ - return await get_picture_file(request, file_id, current_user) - - -@router.get("/video") -async def api_get_video_file(request: Request, file_id: str, current_user: PublicUser = Depends(get_current_user)): - """ - Get video file - """ - return await get_video_file(request, file_id, current_user) - -@router.get("/document") -async def api_get_document_file(request: Request, file_id: str, current_user: PublicUser = Depends(get_current_user)): - """ - Get document file - """ - return await get_document_file(request, file_id, current_user) - - -@router.post("/document") -async def api_create_document_file(request: Request, file_object: UploadFile, lecture_id: str = Form(), current_user: PublicUser = Depends(get_current_user)): - """ - Create new document file - """ - return await create_document_file(request, file_object, lecture_id) \ No newline at end of file diff --git a/src/services/blocks/files/pictures.py b/src/services/blocks/imageBlock/images.py similarity index 74% rename from src/services/blocks/files/pictures.py rename to src/services/blocks/imageBlock/images.py index 7bbf890b..38869fcb 100644 --- a/src/services/blocks/files/pictures.py +++ b/src/services/blocks/imageBlock/images.py @@ -16,31 +16,31 @@ class PhotoFile(BaseModel): lecture_id: str -async def create_picture_file(request: Request,picture_file: UploadFile, lecture_id: str): +async def create_image_file(request: Request,image_file: UploadFile, lecture_id: str): photos = request.app.db["files"] # generate file_id file_id = str(f"file_{uuid4()}") # get file format - file_format = picture_file.filename.split(".")[-1] + file_format = image_file.filename.split(".")[-1] # validate file format if file_format not in ["jpg", "jpeg", "png", "gif"]: raise HTTPException( - status_code=status.HTTP_409_CONFLICT, detail="Picture file format not supported") + status_code=status.HTTP_409_CONFLICT, detail="Image file format not supported") # create file - file = await picture_file.read() + file = await image_file.read() # get file size file_size = len(file) # get file type - file_type = picture_file.content_type + file_type = image_file.content_type # get file name - file_name = picture_file.filename + file_name = image_file.filename # create file object uploadable_file = PhotoFile( @@ -53,11 +53,11 @@ async def create_picture_file(request: Request,picture_file: UploadFile, lecture ) # create folder for lecture - if not os.path.exists(f"content/uploads/files/pictures/{lecture_id}"): - os.mkdir(f"content/uploads/files/pictures/{lecture_id}") + if not os.path.exists(f"content/uploads/files/images/{lecture_id}"): + os.mkdir(f"content/uploads/files/images/{lecture_id}") # upload file to server - with open(f"content/uploads/files/pictures/{lecture_id}/{file_id}.{file_format}", 'wb') as f: + with open(f"content/uploads/files/images/{lecture_id}/{file_id}.{file_format}", 'wb') as f: f.write(file) f.close() @@ -71,7 +71,7 @@ async def create_picture_file(request: Request,picture_file: UploadFile, lecture return uploadable_file -async def get_picture_object(request: Request,file_id: str): +async def get_image_object(request: Request,file_id: str): photos = request.app.db["files"] photo_file = photos.find_one({"file_id": file_id}) @@ -85,7 +85,7 @@ async def get_picture_object(request: Request,file_id: str): status_code=status.HTTP_409_CONFLICT, detail="Photo file does not exist") -async def get_picture_file(request: Request,file_id: str, current_user: PublicUser): +async def get_image_file(request: Request,file_id: str, current_user: PublicUser): photos = request.app.db["files"] photo_file = photos.find_one({"file_id": file_id}) @@ -104,7 +104,7 @@ async def get_picture_file(request: Request,file_id: str, current_user: PublicUs file_format = photo_file.file_format lecture_id = photo_file.lecture_id file = open( - f"content/uploads/files/pictures/{lecture_id}/{file_id}.{file_format}", 'rb') + f"content/uploads/files/images/{lecture_id}/{file_id}.{file_format}", 'rb') return StreamingResponse(file, media_type=photo_file.file_type) else: diff --git a/src/services/blocks/pdfBlock/documents.py b/src/services/blocks/pdfBlock/documents.py index 9fbdf718..a739bb32 100644 --- a/src/services/blocks/pdfBlock/documents.py +++ b/src/services/blocks/pdfBlock/documents.py @@ -95,7 +95,7 @@ async def get_document_file(request: Request, file_id: str, current_user: Public if document_file: # check media type - if document_file.format not in ["jpg", "jpeg", "png", "gif"]: + if document_file.format not in ["pdf"]: raise HTTPException( status_code=status.HTTP_409_CONFLICT, detail="Document file format not supported") diff --git a/src/services/blocks/files/videos.py b/src/services/blocks/videoBlock/videos.py similarity index 100% rename from src/services/blocks/files/videos.py rename to src/services/blocks/videoBlock/videos.py