mirror of
https://github.com/Significant-Gravitas/AutoGPT-Code-Ability.git
synced 2026-11-11 00:21:27 -10:00
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from typing import List, Tuple
|
|
|
|
from prisma.models import CompletedApp
|
|
|
|
from codex.api_model import DeliverableResponse, DeliverablesListResponse, Pagination
|
|
|
|
|
|
async def get_deliverable(
|
|
user_id: str, app_id: str, spec_id: str, deliverable_id: str
|
|
) -> CompletedApp:
|
|
completed_app = await CompletedApp.prisma().find_unique_or_raise(
|
|
where={"id": deliverable_id},
|
|
include={"CompiledRoutes": True},
|
|
)
|
|
|
|
return completed_app
|
|
|
|
|
|
async def delete_deliverable(
|
|
user_id: str, app_id: str, spec_id: str, deliverable_id: str
|
|
) -> None:
|
|
await CompletedApp.prisma().update(
|
|
where={"id": deliverable_id},
|
|
data={"deleted": True},
|
|
)
|
|
|
|
|
|
async def list_deliverables(
|
|
user_id: str,
|
|
app_id: str,
|
|
spec_id: str,
|
|
page: int = 1,
|
|
page_size: int = 10,
|
|
) -> Tuple[List[CompletedApp], Pagination]:
|
|
skip = (page - 1) * page_size
|
|
total_items = await CompletedApp.prisma().count(where={"specificationId": spec_id})
|
|
if total_items == 0:
|
|
return [], Pagination(total_items=0, total_pages=0, current_page=0, page_size=0)
|
|
total_pages = (total_items + page_size - 1) // page_size
|
|
|
|
completed_apps_data = await CompletedApp.prisma().find_many(
|
|
skip=skip,
|
|
take=page_size,
|
|
include={"CompiledRoutes": True},
|
|
)
|
|
|
|
pagination = Pagination(
|
|
total_items=total_items,
|
|
total_pages=total_pages,
|
|
current_page=page,
|
|
page_size=page_size,
|
|
)
|
|
return completed_apps_data, pagination
|