Implementing dataProvider and tuniong create route

This commit is contained in:
2025-04-07 23:51:29 +02:00
parent 661841ceef
commit bc059de65b
6 changed files with 22 additions and 28 deletions

View File

@@ -22,7 +22,8 @@ class FirmRead(BaseModel):
name: str = Field()
class FirmCreate(FirmRead):
pass
instance: str = Field(max_length=32, min_length=3, pattern="^[0-9a-z-]+$")
name: str = Field(max_length=32, min_length=3, pattern="^[0-9a-z-]+$")
class FirmUpdate(FirmRead):
pass
class FirmUpdate(BaseModel):
owner: PydanticObjectId = Field()

View File

@@ -12,15 +12,15 @@ model_update = FirmUpdate
router = APIRouter()
@router.post("/", response_description="{} added to the database".format(model.__name__))
async def create(item: model_create, user=Depends(get_current_user)) -> dict:
async def create(item: model_create, user=Depends(get_current_user)) -> model_read:
exists = await Firm.find_one({"name": item.name, "instance": item.instance})
if exists:
raise HTTPException(status_code=400, detail="Firm already exists")
item.created_by = user.id
item.updated_by = user.id
item.owner = user.id
o = await model(**item.model_dump()).create()
record = model(created_by=user.id, updated_by=user.id, owner=user.id, **item.model_dump())
o = await record.create()
user.firms.append(o.id)
user.save()
return model_read(**o.model_dump())
@router.get("/{id}", response_description="{} record retrieved".format(model.__name__))