From d3bdc3f28d9f1dfc48c009c9dd9bc7077e60c965 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 6 Jul 2023 07:30:50 +0300 Subject: [PATCH] Fix admin drops endpoint. --- engineapi/engineapi/cli.py | 4 ++-- engineapi/engineapi/data.py | 15 +++++++++++++- engineapi/engineapi/routes/admin.py | 31 ++++++++++++++++++++++++++--- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/engineapi/engineapi/cli.py b/engineapi/engineapi/cli.py index 8d55cfba..34df042b 100644 --- a/engineapi/engineapi/cli.py +++ b/engineapi/engineapi/cli.py @@ -151,7 +151,7 @@ def dropper_create_drop_handler(args: argparse.Namespace) -> None: def dropper_activate_drop_handler(args: argparse.Namespace) -> None: try: with db.yield_db_session_ctx() as db_session: - activated_claim = actions.activate_claim( + activated_claim = actions.activate_drop( db_session=db_session, dropper_claim_id=args.dropper_claim_id, ) @@ -164,7 +164,7 @@ def dropper_activate_drop_handler(args: argparse.Namespace) -> None: def dropper_deactivate_drop_handler(args: argparse.Namespace) -> None: try: with db.yield_db_session_ctx() as db_session: - deactivated_claim = actions.deactivate_claim( + deactivated_claim = actions.deactivate_drop( db_session=db_session, dropper_claim_id=args.dropper_claim_id, ) diff --git a/engineapi/engineapi/data.py b/engineapi/engineapi/data.py index 022f2458..b192bd3b 100644 --- a/engineapi/engineapi/data.py +++ b/engineapi/engineapi/data.py @@ -91,6 +91,7 @@ class Claimant(BaseModel): address: str amount: int raw_amount: Optional[str] = None + added_by: Optional[str] = None class BatchAddClaimantsRequest(BaseModel): @@ -155,8 +156,20 @@ class DropBatchResponseItem(BaseModel): blockchain: str +class DropsResponseItem(BaseModel): + id: UUID + title: str + description: str + terminus_address: Optional[str] = None + terminus_pool_id: Optional[int] = None + claim_block_deadline: Optional[int] = None + drop_number: Optional[int] = None + active: bool = True + dropper_contract_address: str + + class DropListResponse(BaseModel): - drops: List[Any] = Field(default_factory=list) + drops: List[DropsResponseItem] = Field(default_factory=list) class DropClaimant(BaseModel): diff --git a/engineapi/engineapi/routes/admin.py b/engineapi/engineapi/routes/admin.py index a32ce4e5..fdf022dc 100644 --- a/engineapi/engineapi/routes/admin.py +++ b/engineapi/engineapi/routes/admin.py @@ -102,7 +102,22 @@ async def get_drop_list_handler( logger.error(f"Can't get drops. Failed with error: {e}") raise EngineHTTPException(status_code=500, detail="Can't get claims") - return data.DropListResponse(drops=[result for result in results]) + return data.DropListResponse( + drops=[ + data.DropsResponseItem( + id=result.id, + title=result.title, + description=result.description, + terminus_address=result.terminus_address, + terminus_pool_id=result.terminus_pool_id, + claim_block_deadline=result.claim_block_deadline, + drop_number=result.drop_number, + active=result.active, + dropper_contract_address=result.dropper_contract_address, + ) + for result in results + ] + ) @app.post("/drops", response_model=data.DropCreatedResponse) @@ -314,7 +329,7 @@ async def get_claimants( limit: int = 10, offset: int = 0, db_session: Session = Depends(db.yield_db_session), -) -> data.DropListResponse: +) -> data.ClaimantsResponse: """ Get list of claimants for a given dropper contract. """ @@ -346,7 +361,17 @@ async def get_claimants( logger.info(f"Can't add claimants for claim {dropper_claim_id} with error: {e}") raise EngineHTTPException(status_code=500, detail=f"Error adding claimants") - return data.ClaimantsResponse(claimants=list(results)) + return data.ClaimantsResponse( + claimants=[ + data.Claimant( + address=result.address, + amount=result.amount, + raw_amount=result.raw_amount, + added_by=result.added_by, + ) + for result in results + ] + ) @app.post(