diff --git a/src/services/courses/courses.py b/src/services/courses/courses.py index 5f44ddde..bfab213a 100644 --- a/src/services/courses/courses.py +++ b/src/services/courses/courses.py @@ -1,14 +1,13 @@ import json -import os from typing import List from uuid import uuid4 from pydantic import BaseModel from src.services.courses.elements.elements import ElementInDB -from src.services.uploads import upload_thumbnail -from src.services.users import PublicUser, User -from src.services.database import create_config_collection, check_database, create_database, learnhouseDB +from src.services.courses.thumbnails import upload_thumbnail +from src.services.users import PublicUser +from src.services.database import check_database, learnhouseDB from src.services.security import * -from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File +from fastapi import HTTPException, status, UploadFile from datetime import datetime #### Classes #################################################### @@ -79,7 +78,6 @@ async def get_course_meta(course_id: str, current_user: PublicUser): course = courses.find_one({"course_id": course_id}) elements = learnhouseDB["elements"] - # verify course rights await verify_rights(course_id, current_user, "read") @@ -87,7 +85,6 @@ async def get_course_meta(course_id: str, current_user: PublicUser): raise HTTPException( status_code=status.HTTP_409_CONFLICT, detail="Course does not exist") - coursechapters = coursechapters.find( {"course_id": course_id}).sort("name", 1) diff --git a/src/services/uploads.py b/src/services/courses/elements/uploads/videos.py similarity index 51% rename from src/services/uploads.py rename to src/services/courses/elements/uploads/videos.py index 516f0b1c..2ca74b6f 100644 --- a/src/services/uploads.py +++ b/src/services/courses/elements/uploads/videos.py @@ -1,21 +1,7 @@ import os -async def upload_thumbnail(thumbnail_file, name_in_disk): - contents = thumbnail_file.file.read() - try: - with open(f"content/uploads/img/{name_in_disk}", 'wb') as f: - f.write(contents) - f.close() - - except Exception as e: - print(e) - return {"message": "There was an error uploading the file"} - finally: - thumbnail_file.file.close() - - -async def upload_video(video_file, name_in_disk, element_id): +async def upload_video(video_file, element_id): contents = video_file.file.read() video_format = video_file.filename.split(".")[-1] # create folder diff --git a/src/services/courses/elements/video.py b/src/services/courses/elements/video.py index d66d0851..b997da7d 100644 --- a/src/services/courses/elements/video.py +++ b/src/services/courses/elements/video.py @@ -1,10 +1,10 @@ from pydantic import BaseModel -from src.services.database import create_config_collection, check_database, create_database, learnhouseDB +from src.services.database import check_database, learnhouseDB from src.services.security import verify_user_rights_with_roles -from src.services.uploads import upload_video -from src.services.users import PublicUser, User -from src.services.courses.elements.elements import ElementInDB, Element -from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File +from src.services.courses.elements.uploads import upload_video +from src.services.users import PublicUser +from src.services.courses.elements.elements import ElementInDB +from fastapi import HTTPException, status, UploadFile from uuid import uuid4 from datetime import datetime @@ -48,7 +48,7 @@ async def create_video_element(name: str, coursechapter_id: str, current_user: print("uploading video") # get videofile format - await upload_video(video_file, video_file.filename, element_id) + await upload_video(video_file, element_id) # todo : choose whether to update the chapter or not # update chapter diff --git a/src/services/courses/files/photos.py b/src/services/courses/files/photos.py new file mode 100644 index 00000000..d440e5ea --- /dev/null +++ b/src/services/courses/files/photos.py @@ -0,0 +1,4 @@ +from uuid import uuid4 + + + \ No newline at end of file diff --git a/src/services/courses/files/videos.py b/src/services/courses/files/videos.py new file mode 100644 index 00000000..e69de29b diff --git a/src/services/courses/thumbnails.py b/src/services/courses/thumbnails.py new file mode 100644 index 00000000..1306038d --- /dev/null +++ b/src/services/courses/thumbnails.py @@ -0,0 +1,15 @@ +import os + + +async def upload_thumbnail(thumbnail_file, name_in_disk): + contents = thumbnail_file.file.read() + try: + with open(f"content/uploads/img/{name_in_disk}", 'wb') as f: + f.write(contents) + f.close() + + except Exception as e: + print(e) + return {"message": "There was an error uploading the file"} + finally: + thumbnail_file.file.close() \ No newline at end of file