From 029143e456b5cfd6b209635695a17db80a3a1353 Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Mon, 17 Jun 2024 10:12:07 +0330 Subject: [PATCH] feat:add get last record --- app/repositories/bill.py | 12 ++++++++++++ app/urls/bill.py | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/app/repositories/bill.py b/app/repositories/bill.py index 9f6ead0..2ffa518 100644 --- a/app/repositories/bill.py +++ b/app/repositories/bill.py @@ -1,8 +1,20 @@ +import uuid + from app.config import TaskEnv from app.models.bill import BillModel from core.repositories.base import BaseRepository +from core.service.mongo_db import use_collection class BillRepository(BaseRepository): def __init__(self): super().__init__(collection=TaskEnv.CLN_BILL, model=BillModel) + + async def search_last(self,contract_id:uuid.UUID): + last = await use_collection(TaskEnv.CLN_BILL).find({ + "contract_id":contract_id + }).sort("$natural", -1).to_list(None) + if last: + return last[0] + else: + return {} diff --git a/app/urls/bill.py b/app/urls/bill.py index fdde267..5ec414b 100644 --- a/app/urls/bill.py +++ b/app/urls/bill.py @@ -19,6 +19,11 @@ repo = BillRepository() def create(coding: ThisModel = Body(...)): pass +@router.get('last/{contract_id}', response_model=ThisModel, tags=_tag_base) +@shrink(repo.search_last) +def get(contract_id: UUID): + pass + @router.put('/{_id}', response_model=ThisModel, tags=_tag_base) @shrink(repo.update) def update(_id: UUID, coding: ThisModel = Body(...)):