mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
chore: cleanup python code
This commit is contained in:
parent
05f8539361
commit
7d78d06165
30 changed files with 46 additions and 87 deletions
2
app.py
2
app.py
|
|
@ -1,7 +1,5 @@
|
||||||
import asyncio
|
|
||||||
import logging
|
import logging
|
||||||
from fastapi import FastAPI, Request
|
from fastapi import FastAPI, Request
|
||||||
import re
|
|
||||||
from config.config import LearnHouseConfig, get_learnhouse_config
|
from config.config import LearnHouseConfig, get_learnhouse_config
|
||||||
from src.core.events.events import shutdown_app, startup_app
|
from src.core.events.events import shutdown_app, startup_app
|
||||||
from src.main import global_router
|
from src.main import global_router
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@ from fastapi import Depends, APIRouter, HTTPException, status, Request
|
||||||
from fastapi.security import OAuth2PasswordRequestForm
|
from fastapi.security import OAuth2PasswordRequestForm
|
||||||
from src.security.auth import *
|
from src.security.auth import *
|
||||||
from src.services.users.users import *
|
from src.services.users.users import *
|
||||||
from datetime import timedelta
|
|
||||||
from fastapi.responses import JSONResponse
|
|
||||||
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from fastapi import APIRouter, Depends, UploadFile, Form, Request
|
from fastapi import APIRouter, Depends, UploadFile, Form, Request
|
||||||
from src.security.auth import get_current_user
|
from src.security.auth import get_current_user
|
||||||
from fastapi import HTTPException, status, UploadFile
|
from fastapi import UploadFile
|
||||||
from src.services.blocks.block_types.imageBlock.images import create_image_block, get_image_block
|
from src.services.blocks.block_types.imageBlock.images import create_image_block, get_image_block
|
||||||
from src.services.blocks.block_types.videoBlock.videoBlock import create_video_block, get_video_block
|
from src.services.blocks.block_types.videoBlock.videoBlock import create_video_block, get_video_block
|
||||||
from src.services.blocks.block_types.pdfBlock.pdfBlock import create_pdf_block, get_pdf_block
|
from src.services.blocks.block_types.pdfBlock.pdfBlock import create_pdf_block, get_pdf_block
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from fastapi import APIRouter, Depends, Request, UploadFile, Form
|
from fastapi import APIRouter, Depends, Request
|
||||||
|
|
||||||
from src.services.courses.chapters import CourseChapter, CourseChapterMetaData, create_coursechapter, delete_coursechapter, get_coursechapter, get_coursechapters, get_coursechapters_meta, update_coursechapter, update_coursechapters_meta
|
from src.services.courses.chapters import CourseChapter, CourseChapterMetaData, create_coursechapter, delete_coursechapter, get_coursechapter, get_coursechapters, get_coursechapters_meta, update_coursechapter, update_coursechapters_meta
|
||||||
from src.services.users.users import PublicUser
|
from src.services.users.users import PublicUser
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from fastapi import APIRouter, Depends, Request
|
from fastapi import APIRouter, Depends, Request
|
||||||
from src.security.auth import get_current_user
|
from src.security.auth import get_current_user
|
||||||
from src.services.users.users import PublicUser, User
|
from src.services.users.users import PublicUser
|
||||||
from src.services.courses.collections import Collection, create_collection, get_collection, get_collections, update_collection, delete_collection
|
from src.services.courses.collections import Collection, create_collection, get_collection, get_collections, update_collection, delete_collection
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from fastapi import APIRouter, Depends, Request
|
||||||
from src.security.auth import get_current_user
|
from src.security.auth import get_current_user
|
||||||
from src.services.roles.schemas.roles import Role
|
from src.services.roles.schemas.roles import Role
|
||||||
from src.services.roles.roles import create_role, delete_role, read_role, update_role
|
from src.services.roles.roles import create_role, delete_role, read_role, update_role
|
||||||
from src.services.users.schemas.users import PublicUser, User
|
from src.services.users.schemas.users import PublicUser
|
||||||
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
from typing import Optional
|
|
||||||
from fastapi import APIRouter, Depends, Request
|
from fastapi import APIRouter, Depends, Request
|
||||||
from src.security.auth import get_current_user
|
from src.security.auth import get_current_user
|
||||||
from src.services.trail import Trail, add_activity_to_trail, add_course_to_trail, create_trail, get_user_trail_with_orgslug, get_user_trail, remove_course_from_trail
|
from src.services.trail import Trail, add_activity_to_trail, add_course_to_trail, create_trail, get_user_trail_with_orgslug, get_user_trail, remove_course_from_trail
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
from fastapi import Depends, FastAPI, APIRouter
|
from fastapi import Depends, APIRouter
|
||||||
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
|
||||||
from pydantic import BaseModel
|
|
||||||
from src.security.auth import *
|
from src.security.auth import *
|
||||||
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserWithPassword
|
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserWithPassword
|
||||||
from src.services.users.users import create_user, delete_user, get_profile_metadata, get_user_by_userid, read_user, update_user, update_user_password
|
from src.services.users.users import create_user, delete_user, get_profile_metadata, get_user_by_userid, update_user, update_user_password
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,12 @@
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from fastapi import Depends, FastAPI, APIRouter, HTTPException, status
|
from fastapi import Depends, HTTPException, status
|
||||||
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
from fastapi.security import OAuth2PasswordBearer
|
||||||
from passlib.context import CryptContext
|
|
||||||
from jose import JWTError, jwt
|
from jose import JWTError, jwt
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from src.services.users.schemas.users import AnonymousUser
|
from src.services.users.schemas.users import AnonymousUser
|
||||||
from src.services.users.users import *
|
from src.services.users.users import *
|
||||||
from fastapi import Cookie, FastAPI
|
|
||||||
from src.security.security import *
|
from src.security.security import *
|
||||||
from fastapi_jwt_auth import AuthJWT
|
from fastapi_jwt_auth import AuthJWT
|
||||||
from fastapi_jwt_auth.exceptions import AuthJWTException
|
|
||||||
|
|
||||||
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login")
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from pprint import pprint
|
|
||||||
from fastapi import HTTPException, status, Request
|
from fastapi import HTTPException, status, Request
|
||||||
from passlib.context import CryptContext
|
from passlib.context import CryptContext
|
||||||
from passlib.hash import pbkdf2_sha256
|
from passlib.hash import pbkdf2_sha256
|
||||||
from src.services.roles.schemas.roles import RoleInDB
|
from src.services.roles.schemas.roles import RoleInDB
|
||||||
|
|
||||||
from src.services.users.schemas.users import User, UserInDB
|
from src.services.users.schemas.users import UserInDB
|
||||||
|
|
||||||
### 🔒 JWT ##############################################################
|
### 🔒 JWT ##############################################################
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
|
||||||
from fastapi import HTTPException, status, UploadFile, Request
|
from fastapi import HTTPException, status, UploadFile, Request
|
||||||
from fastapi.responses import StreamingResponse
|
|
||||||
import os
|
|
||||||
from src.services.blocks.schemas.blocks import Block
|
from src.services.blocks.schemas.blocks import Block
|
||||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
|
||||||
from fastapi import HTTPException, status, UploadFile, Request
|
from fastapi import HTTPException, status, UploadFile, Request
|
||||||
from fastapi.responses import StreamingResponse
|
|
||||||
import os
|
|
||||||
from src.services.blocks.schemas.blocks import Block
|
from src.services.blocks.schemas.blocks import Block
|
||||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,5 @@
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
|
||||||
import os
|
|
||||||
from fastapi import HTTPException, status, UploadFile, Request
|
from fastapi import HTTPException, status, UploadFile, Request
|
||||||
from fastapi.responses import StreamingResponse
|
|
||||||
from src.services.blocks.schemas.blocks import Block
|
from src.services.blocks.schemas.blocks import Block
|
||||||
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
from src.services.blocks.utils.upload_files import upload_file_and_return_file_object
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
|
|
||||||
from typing import Any, List, Literal
|
from typing import Any, Literal
|
||||||
from uuid import uuid4
|
|
||||||
from fastapi import Request
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import uuid
|
||||||
from fastapi import HTTPException, Request, UploadFile, status
|
from fastapi import HTTPException, Request, UploadFile, status
|
||||||
from src.services.blocks.schemas.files import BlockFile
|
from src.services.blocks.schemas.files import BlockFile
|
||||||
|
|
||||||
from src.services.users.schemas.users import PublicUser
|
|
||||||
|
|
||||||
|
|
||||||
async def upload_file_and_return_file_object(request: Request, file: UploadFile, activity_id: str, block_id: str, list_of_allowed_file_formats: list, type_of_block: str):
|
async def upload_file_and_return_file_object(request: Request, file: UploadFile, activity_id: str, block_id: str, list_of_allowed_file_formats: list, type_of_block: str):
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from src.security.security import verify_user_rights_with_roles
|
from src.security.security import verify_user_rights_with_roles
|
||||||
from src.services.users.schemas.users import PublicUser, User
|
from src.services.users.schemas.users import PublicUser
|
||||||
from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File
|
from fastapi import HTTPException, status, Request
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
from src.security.security import verify_user_rights_with_roles
|
from src.security.security import verify_user_rights_with_roles
|
||||||
from src.services.courses.activities.uploads.pdfs import upload_pdf
|
from src.services.courses.activities.uploads.pdfs import upload_pdf
|
||||||
from src.services.users.users import PublicUser
|
from src.services.users.users import PublicUser
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ async def upload_pdf(pdf_file, activity_id):
|
||||||
f.write(contents)
|
f.write(contents)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception:
|
||||||
return {"message": "There was an error uploading the file"}
|
return {"message": "There was an error uploading the file"}
|
||||||
finally:
|
finally:
|
||||||
pdf_file.file.close()
|
pdf_file.file.close()
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ async def upload_video(video_file, activity_id):
|
||||||
f.write(contents)
|
f.write(contents)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception:
|
||||||
return {"message": "There was an error uploading the file"}
|
return {"message": "There was an error uploading the file"}
|
||||||
finally:
|
finally:
|
||||||
video_file.file.close()
|
video_file.file.close()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
from src.security.security import verify_user_rights_with_roles
|
from src.security.security import verify_user_rights_with_roles
|
||||||
from src.services.courses.activities.uploads.videos import upload_video
|
from src.services.courses.activities.uploads.videos import upload_video
|
||||||
from src.services.users.users import PublicUser
|
from src.services.users.users import PublicUser
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import json
|
|
||||||
import pprint
|
|
||||||
from typing import List
|
from typing import List
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from src.security.auth import non_public_endpoint
|
from src.security.auth import non_public_endpoint
|
||||||
from src.services.courses.courses import Course, CourseInDB
|
from src.services.courses.courses import Course
|
||||||
from src.services.courses.activities.activities import Activity, ActivityInDB
|
from src.services.courses.activities.activities import ActivityInDB
|
||||||
from src.security.security import verify_user_rights_with_roles
|
from src.security.security import verify_user_rights_with_roles
|
||||||
from src.services.users.users import PublicUser
|
from src.services.users.users import PublicUser
|
||||||
from fastapi import HTTPException, status, Request, Response, BackgroundTasks, UploadFile, File
|
from fastapi import HTTPException, status, Request
|
||||||
|
|
||||||
|
|
||||||
class CourseChapter(BaseModel):
|
class CourseChapter(BaseModel):
|
||||||
|
|
@ -115,7 +113,7 @@ async def delete_coursechapter(request: Request, coursechapter_id: str, current
|
||||||
await verify_rights(request, course["course_id"], current_user, "delete")
|
await verify_rights(request, course["course_id"], current_user, "delete")
|
||||||
|
|
||||||
# Remove coursechapter from course
|
# Remove coursechapter from course
|
||||||
res = await courses.update_one({"course_id": course["course_id"]}, {
|
await courses.update_one({"course_id": course["course_id"]}, {
|
||||||
"$pull": {"chapters": coursechapter_id}})
|
"$pull": {"chapters": coursechapter_id}})
|
||||||
|
|
||||||
await courses.update_one({"chapters_content.coursechapter_id": coursechapter_id}, {
|
await courses.update_one({"chapters_content.coursechapter_id": coursechapter_id}, {
|
||||||
|
|
@ -200,7 +198,7 @@ async def update_coursechapters_meta(request: Request, course_id: str, coursecha
|
||||||
courses = request.app.db["courses"]
|
courses = request.app.db["courses"]
|
||||||
|
|
||||||
# update chapters in course
|
# update chapters in course
|
||||||
courseInDB = await courses.update_one({"course_id": course_id}, {
|
await courses.update_one({"course_id": course_id}, {
|
||||||
"$set": {"chapters": coursechapters_metadata.chapterOrder}})
|
"$set": {"chapters": coursechapters_metadata.chapterOrder}})
|
||||||
|
|
||||||
if coursechapters_metadata.chapters is not None:
|
if coursechapters_metadata.chapters is not None:
|
||||||
|
|
@ -230,7 +228,7 @@ async def verify_rights(request: Request, course_id: str, current_user: PublicUs
|
||||||
|
|
||||||
if not course:
|
if not course:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT, detail=f"Course does not exist")
|
status_code=status.HTTP_409_CONFLICT, detail="Course does not exist")
|
||||||
|
|
||||||
hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"])
|
hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"])
|
||||||
isAuthor = current_user.user_id in course["authors"]
|
isAuthor = current_user.user_id in course["authors"]
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
import json
|
|
||||||
from typing import List
|
from typing import List
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from src.services.users.users import PublicUser, User
|
from src.services.users.users import PublicUser
|
||||||
from src.security.security import *
|
from src.security.security import *
|
||||||
from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks
|
from fastapi import HTTPException, status, Request
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
#### Classes ####################################################
|
#### Classes ####################################################
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@ async def get_courses_orgslug(request: Request, page: int = 1, limit: int = 10,
|
||||||
|
|
||||||
if not org:
|
if not org:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT, detail=f"Organization does not exist")
|
status_code=status.HTTP_409_CONFLICT, detail="Organization does not exist")
|
||||||
|
|
||||||
# get all courses from database
|
# get all courses from database
|
||||||
all_courses = courses.find({"org_id": org['org_id']}).sort(
|
all_courses = courses.find({"org_id": org['org_id']}).sort(
|
||||||
|
|
@ -288,12 +288,12 @@ async def verify_rights(request: Request, course_id: str, current_user: PublicUs
|
||||||
|
|
||||||
course = await courses.find_one({"course_id": course_id})
|
course = await courses.find_one({"course_id": course_id})
|
||||||
|
|
||||||
if current_user.user_id == "anonymous" and course["public"] == True and action == "read":
|
if current_user.user_id == "anonymous" and course["public"] is True and action == "read":
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if not course:
|
if not course:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_409_CONFLICT, detail=f"Course/CourseChapter does not exist")
|
status_code=status.HTTP_409_CONFLICT, detail="Course/CourseChapter does not exist")
|
||||||
|
|
||||||
hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"])
|
hasRoleRights = await verify_user_rights_with_roles(request, action, current_user.user_id, course_id, course["org_id"])
|
||||||
isAuthor = current_user.user_id in course["authors"]
|
isAuthor = current_user.user_id in course["authors"]
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ async def upload_thumbnail(thumbnail_file, name_in_disk):
|
||||||
f.write(contents)
|
f.write(contents)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception:
|
||||||
return {"message": "There was an error uploading the file"}
|
return {"message": "There was an error uploading the file"}
|
||||||
finally:
|
finally:
|
||||||
thumbnail_file.file.close()
|
thumbnail_file.file.close()
|
||||||
|
|
@ -1,22 +1,17 @@
|
||||||
import os
|
import os
|
||||||
import requests
|
import requests
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from fileinput import filename
|
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from fastapi import File, UploadFile, Request
|
from fastapi import Request
|
||||||
from src.security.security import security_hash_password
|
from src.security.security import security_hash_password
|
||||||
from src.services.courses.chapters import CourseChapter, create_coursechapter
|
from src.services.courses.chapters import CourseChapter, create_coursechapter
|
||||||
from src.services.courses.activities.activities import Activity, create_activity
|
from src.services.courses.activities.activities import Activity, create_activity
|
||||||
from src.services.courses.thumbnails import upload_thumbnail
|
from src.services.users.users import PublicUser, UserInDB
|
||||||
from src.services.users.schemas.users import UserRolesInOrganization
|
|
||||||
from src.services.users.users import PublicUser, User, UserInDB, UserWithPassword
|
|
||||||
|
|
||||||
from src.services.orgs import OrganizationInDB, Organization, create_org
|
from src.services.orgs import Organization, create_org
|
||||||
from src.services.roles.schemas.roles import Permission, Elements, RoleInDB
|
from src.services.roles.schemas.roles import Permission, Elements, RoleInDB
|
||||||
from src.services.users.users import create_user
|
from src.services.courses.courses import CourseInDB
|
||||||
from src.services.courses.courses import Course, CourseInDB, create_course
|
|
||||||
from src.services.roles.roles import Role, create_role
|
|
||||||
from faker import Faker
|
from faker import Faker
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -39,12 +34,12 @@ async def create_initial_data(request: Request):
|
||||||
update_date=str(datetime.now()),
|
update_date=str(datetime.now()),
|
||||||
roles= [],
|
roles= [],
|
||||||
orgs=[],
|
orgs=[],
|
||||||
username=f"admin",
|
username="admin",
|
||||||
email=f"admin@admin.admin",
|
email="admin@admin.admin",
|
||||||
password=str(await security_hash_password("admin")),
|
password=str(await security_hash_password("admin")),
|
||||||
)
|
)
|
||||||
|
|
||||||
db_admin_user = await database_users.insert_one(admin_user.dict())
|
await database_users.insert_one(admin_user.dict())
|
||||||
|
|
||||||
# find admin user
|
# find admin user
|
||||||
users = request.app.db["users"]
|
users = request.app.db["users"]
|
||||||
|
|
@ -188,9 +183,9 @@ async def create_initial_data(request: Request):
|
||||||
"https://source.unsplash.com/random/800x600/?img=1")
|
"https://source.unsplash.com/random/800x600/?img=1")
|
||||||
|
|
||||||
# check if folder exists and create it if not
|
# check if folder exists and create it if not
|
||||||
if not os.path.exists(f"content/uploads/img"):
|
if not os.path.exists("content/uploads/img"):
|
||||||
|
|
||||||
os.makedirs(f"content/uploads/img")
|
os.makedirs("content/uploads/img")
|
||||||
|
|
||||||
with open(f"content/uploads/img/{name_in_disk}", "wb") as f:
|
with open(f"content/uploads/img/{name_in_disk}", "wb") as f:
|
||||||
f.write(image.content)
|
f.write(image.content)
|
||||||
|
|
@ -198,7 +193,7 @@ async def create_initial_data(request: Request):
|
||||||
course.thumbnail = name_in_disk
|
course.thumbnail = name_in_disk
|
||||||
|
|
||||||
course = CourseInDB(**course.dict())
|
course = CourseInDB(**course.dict())
|
||||||
course_in_db = await courses.insert_one(course.dict())
|
await courses.insert_one(course.dict())
|
||||||
|
|
||||||
# create chapters
|
# create chapters
|
||||||
for i in range(0, 5):
|
for i in range(0, 5):
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
import json
|
import json
|
||||||
from typing import List
|
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from src.services.users.schemas.users import UserOrganization
|
from src.services.users.schemas.users import UserOrganization
|
||||||
from src.services.users.users import PublicUser, User
|
from src.services.users.users import PublicUser
|
||||||
from src.security.security import *
|
from src.security.security import *
|
||||||
from fastapi import FastAPI, HTTPException, status, Request, Response, BackgroundTasks
|
from fastapi import HTTPException, status, Request
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
#### Classes ####################################################
|
#### Classes ####################################################
|
||||||
|
|
||||||
|
|
@ -109,8 +107,8 @@ async def update_org(request: Request, org_object: Organization, org_id: str, cu
|
||||||
org = await orgs.find_one({"org_id": org_id})
|
org = await orgs.find_one({"org_id": org_id})
|
||||||
|
|
||||||
if org:
|
if org:
|
||||||
owners = org["owners"]
|
org["owners"]
|
||||||
admins = org["admins"]
|
org["admins"]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
@ -153,7 +151,7 @@ async def get_orgs_by_user(request: Request, user_id: str, page: int = 1, limit:
|
||||||
orgs = request.app.db["organizations"]
|
orgs = request.app.db["organizations"]
|
||||||
user = request.app.db["users"]
|
user = request.app.db["users"]
|
||||||
|
|
||||||
if user_id is "anonymous":
|
if user_id == "anonymous":
|
||||||
|
|
||||||
# raise error
|
# raise error
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
import json
|
from typing import Literal
|
||||||
from typing import List, Literal
|
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from pydantic import BaseModel
|
|
||||||
from src.services.roles.schemas.roles import Role, RoleInDB
|
from src.services.roles.schemas.roles import Role, RoleInDB
|
||||||
from src.services.users.schemas.users import PublicUser, User
|
from src.services.users.schemas.users import PublicUser
|
||||||
from src.security.security import *
|
from src.security.security import *
|
||||||
from fastapi import HTTPException, status, Request
|
from fastapi import HTTPException, status, Request
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
@ -63,7 +61,7 @@ async def delete_role(request: Request, role_id: str, current_user: PublicUser):
|
||||||
#### Security ####################################################
|
#### Security ####################################################
|
||||||
|
|
||||||
async def verify_user_permissions_on_roles(request: Request, current_user: PublicUser, action: Literal["create", "read", "update", "delete"], role_id: str | None):
|
async def verify_user_permissions_on_roles(request: Request, current_user: PublicUser, action: Literal["create", "read", "update", "delete"], role_id: str | None):
|
||||||
users = request.app.db["users"]
|
request.app.db["users"]
|
||||||
roles = request.app.db["roles"]
|
roles = request.app.db["roles"]
|
||||||
|
|
||||||
# If current user is not authenticated
|
# If current user is not authenticated
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from typing import List, Literal
|
from typing import Literal
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
from cmath import log
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import json
|
|
||||||
from typing import List, Literal, Optional
|
from typing import List, Literal, Optional
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from fastapi import HTTPException, Request, status
|
from fastapi import HTTPException, Request, status
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ from datetime import datetime
|
||||||
from typing import Literal
|
from typing import Literal
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
from fastapi import HTTPException, Request, status
|
from fastapi import HTTPException, Request, status
|
||||||
from src.services.roles.schemas.roles import Role
|
|
||||||
from src.security.security import security_hash_password, security_verify_password
|
from src.security.security import security_hash_password, security_verify_password
|
||||||
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserOrganization, UserRolesInOrganization, UserWithPassword, UserInDB
|
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserOrganization, UserRolesInOrganization, UserWithPassword, UserInDB
|
||||||
|
|
||||||
|
|
@ -195,7 +194,7 @@ async def get_user_by_userid(request: Request, user_id: str):
|
||||||
|
|
||||||
async def get_profile_metadata(request: Request, user):
|
async def get_profile_metadata(request: Request, user):
|
||||||
users = request.app.db["users"]
|
users = request.app.db["users"]
|
||||||
roles = request.app.db["roles"]
|
request.app.db["roles"]
|
||||||
|
|
||||||
user = await users.find_one({"user_id": user['user_id']})
|
user = await users.find_one({"user_id": user['user_id']})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue