swadhingithub 2nd step · 2/2/2024
85573d0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from typing import Optional, List
from uuid import UUID
from schemas.teacher_shema import OutTeacher,UpdateTeacher,TeacherBase
from models.TeachersMOdel import Teacher
import pymongo
class TeacherService:
@staticmethod
async def create_teacher(user:TeacherBase):
teacher_in=Teacher(
teacher_id=user.teacher_id,
name=user.name,
email=user.email,
username=user.username,
password=user.password,
frist_name=user.frist_name,
last_name=user.last_name,
)
await teacher_in.save()
return teacher_in
@staticmethod
async def get_teacher_byid(teacher_id:str)->Optional[Teacher]:
teacher=await Teacher.find_one(Teacher.teacher_id==teacher_id)
return teacher
@staticmethod
async def get_teacher_byusername(username:str)->Optional[Teacher]:
teacher=await Teacher.find_one(Teacher.username==username)
return teacher
@staticmethod
async def get_teacher_byemail(email:str)->Optional[Teacher]:
teacher=await Teacher.find_one(Teacher.email==email)
return teacher
@staticmethod
async def get_teacher_byname(name:str)->Optional[Teacher]:
teacher=await Teacher.find_one(Teacher.name==name)
return teacher
@staticmethod
async def get_all_teachers()->List[Teacher]:
teachers=await Teacher.find_all()
return teachers
@staticmethod
async def update_teacher(teacher_id:str,teacher:UpdateTeacher)->Optional[Teacher]:
teacher=await Teacher.find_one(Teacher.teacher_id==teacher_id)
if not teacher:
raise pymongo.errors.OperationFailure("Teacher not found")
await teacher.update({"$set":teacher.dict( exclude_unset=True)})
return teacher