Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion src/fishaudio/resources/account.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from typing import Optional

from ..core import AsyncClientWrapper, ClientWrapper, RequestOptions
from ..core import OMIT, AsyncClientWrapper, ClientWrapper, RequestOptions
from ..types import Credits, Package


Expand All @@ -15,12 +15,14 @@ def __init__(self, client_wrapper: ClientWrapper):
def get_credits(
self,
*,
check_free_credit: Optional[bool] = OMIT,
request_options: Optional[RequestOptions] = None,
) -> Credits:
"""
Get API credit balance.

Args:
check_free_credit: Whether to check free credit availability
request_options: Request-level overrides

Returns:
Expand All @@ -31,11 +33,21 @@ def get_credits(
client = FishAudio(api_key="...")
credits = client.account.get_credits()
print(f"Available credits: {float(credits.credit)}")

# Check free credit availability
credits = client.account.get_credits(check_free_credit=True)
if credits.has_free_credit:
print("Free credits available!")
```
"""
params = {}
if check_free_credit is not OMIT:
params["check_free_credit"] = check_free_credit

response = self._client.request(
"GET",
"/wallet/self/api-credit",
params=params,
request_options=request_options,
)
return Credits.model_validate(response.json())
Expand Down Expand Up @@ -78,12 +90,14 @@ def __init__(self, client_wrapper: AsyncClientWrapper):
async def get_credits(
self,
*,
check_free_credit: Optional[bool] = OMIT,
request_options: Optional[RequestOptions] = None,
) -> Credits:
"""
Get API credit balance (async).

Args:
check_free_credit: Whether to check free credit availability
request_options: Request-level overrides

Returns:
Expand All @@ -94,11 +108,21 @@ async def get_credits(
client = AsyncFishAudio(api_key="...")
credits = await client.account.get_credits()
print(f"Available credits: {float(credits.credit)}")

# Check free credit availability
credits = await client.account.get_credits(check_free_credit=True)
if credits.has_free_credit:
print("Free credits available!")
```
"""
params = {}
if check_free_credit is not OMIT:
params["check_free_credit"] = check_free_credit

response = await self._client.request(
"GET",
"/wallet/self/api-credit",
params=params,
request_options=request_options,
)
return Credits.model_validate(response.json())
Expand Down
Loading