Files
sakhteman/app/repositories/grand_project.py
T

30 lines
1.1 KiB
Python
Raw Normal View History

2024-02-23 18:26:07 +03:30
import uuid
from fastapi import HTTPException
2024-02-22 11:43:37 +03:30
from app.models.grand_project import GrandProjectModel
from core.repositories.base import BaseRepository
2024-02-23 18:33:42 +03:30
from core.utils.crudify import mongo_inserter, mongo_updater, ConfigMongoWriter
2024-02-22 11:43:37 +03:30
COLLECTION = "grand_project"
2024-02-22 11:47:41 +03:30
class GrandProjectRepository(BaseRepository[GrandProjectModel]):
2024-02-22 11:43:37 +03:30
def __init__(self):
2024-02-23 18:26:07 +03:30
super().__init__(collection=COLLECTION, model=GrandProjectModel)
def check_weight(self,_inp:GrandProjectModel):
sum = 0
for project in _inp.assign_project:
2024-03-02 00:26:13 +03:30
sum += project.weight
print(sum)
2024-02-23 18:26:07 +03:30
if sum != 100:
raise HTTPException(422, 'مجموعه وزن ها باید صد درصد باشد')
async def create(self, create: GrandProjectModel):
self.check_weight(create)
2024-02-23 18:33:42 +03:30
config = ConfigMongoWriter(
2024-02-23 18:43:37 +03:30
has_owner= False
2024-02-23 18:33:42 +03:30
)
return await mongo_inserter(create, self.COLLECTION, options=config,getter=self.get)
2024-02-23 18:26:07 +03:30
async def update(self,_id:uuid.UUID, update:GrandProjectModel):
self.check_weight(update)
2024-02-23 18:43:37 +03:30
return await mongo_updater(update,_id,COLLECTION,getter=self.get)