From 2a23d92daef7a2c6816342316db83e40f4758039 Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Fri, 23 Feb 2024 18:26:07 +0330 Subject: [PATCH] add grand project model, repository --- app/repositories/grand_project.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/app/repositories/grand_project.py b/app/repositories/grand_project.py index f5cedb7..bb4d236 100644 --- a/app/repositories/grand_project.py +++ b/app/repositories/grand_project.py @@ -1,7 +1,26 @@ +import uuid + +from fastapi import HTTPException + from app.models.grand_project import GrandProjectModel from core.repositories.base import BaseRepository +from core.utils.crudify import mongo_inserter, mongo_updater COLLECTION = "grand_project" class GrandProjectRepository(BaseRepository[GrandProjectModel]): def __init__(self): - super().__init__(collection=COLLECTION, model=GrandProjectModel) \ No newline at end of file + super().__init__(collection=COLLECTION, model=GrandProjectModel) + + def check_weight(self,_inp:GrandProjectModel): + sum = 0 + for project in _inp.assign_project: + sum = project.weight + if sum != 100: + raise HTTPException(422, 'مجموعه وزن ها باید صد درصد باشد') + async def create(self, create: GrandProjectModel): + self.check_weight(create) + return await mongo_inserter(create, self.COLLECTION, getter=self.get) + + async def update(self,_id:uuid.UUID, update:GrandProjectModel): + self.check_weight(update) + return await mongo_updater(update,_id,COLLECTION) \ No newline at end of file