diff --git a/autogpt_platform/backend/backend/server/model.py b/autogpt_platform/backend/backend/server/model.py index 7c554b445..5ad029897 100644 --- a/autogpt_platform/backend/backend/server/model.py +++ b/autogpt_platform/backend/backend/server/model.py @@ -56,3 +56,7 @@ class SetGraphActiveVersion(pydantic.BaseModel): class UpdatePermissionsRequest(pydantic.BaseModel): permissions: List[APIKeyPermission] + + +class RequestTopUp(pydantic.BaseModel): + amount: int diff --git a/autogpt_platform/backend/backend/server/routers/v1.py b/autogpt_platform/backend/backend/server/routers/v1.py index beb56e4c9..541cf1891 100644 --- a/autogpt_platform/backend/backend/server/routers/v1.py +++ b/autogpt_platform/backend/backend/server/routers/v1.py @@ -42,6 +42,7 @@ from backend.server.model import ( CreateGraph, SetGraphActiveVersion, UpdatePermissionsRequest, + RequestTopUp, ) from backend.server.utils import get_user_id from backend.util.service import get_service_client @@ -138,6 +139,13 @@ async def get_user_credits( return {"credits": max(await _user_credit_model.get_or_refill_credit(user_id), 0)} +@v1_router.post(path="/credits", dependencies=[Depends(auth_middleware)]) +async def request_top_up( + user_id: Annotated[str, Depends(get_user_id)], request: RequestTopUp +): + pass + + ######################################################## ##################### Graphs ########################### ######################################################## diff --git a/autogpt_platform/frontend/src/lib/autogpt-server-api/baseClient.ts b/autogpt_platform/frontend/src/lib/autogpt-server-api/baseClient.ts index 00ca4566b..7cd71baa8 100644 --- a/autogpt_platform/frontend/src/lib/autogpt-server-api/baseClient.ts +++ b/autogpt_platform/frontend/src/lib/autogpt-server-api/baseClient.ts @@ -60,6 +60,10 @@ export default class BaseAutoGPTServerAPI { return this._get(`/credits`); } + requestTopUp(amount: number): Promise { + return this._request("POST", "/credits", { amount }); + } + getBlocks(): Promise { return this._get("/blocks"); }