Source code for moderatelyai_sdk.resources_async.users

"""Async users resource for the Moderately AI API."""


from ..models.user_async import UserAsyncModel
from ..types import PaginatedResponse
from ._base import AsyncBaseResource


[docs] class AsyncUsers(AsyncBaseResource): """Manage users in your teams (async version)."""
[docs] async def list( self, *, page: int = 1, page_size: int = 10, order_by: str = "created_at", order_direction: str = "desc", ) -> PaginatedResponse: """List all users with pagination (async).""" query = { "page": page, "page_size": page_size, "order_by": order_by, "order_direction": order_direction, } response = await self._get("/users", options={"query": query}) # Convert items to UserAsyncModel instances if "items" in response: response["items"] = [ UserAsyncModel(item, self._client) for item in response["items"] ] return response
[docs] async def retrieve(self, user_id: str) -> UserAsyncModel: """Retrieve a specific user by ID (async).""" data = await self._get(f"/users/{user_id}") return UserAsyncModel(data, self._client)
[docs] async def update( self, user_id: str, *, full_name: str, **kwargs, ) -> UserAsyncModel: """Update an existing user (async). Args: user_id: The ID of the user to update. full_name: New full name for the user (required). **kwargs: Additional properties to update. Returns: The updated user model with rich functionality. Raises: NotFoundError: If the user doesn't exist. ValidationError: If the request data is invalid. """ body = { "fullName": full_name, **kwargs, } data = await self._patch(f"/users/{user_id}", body=body) return UserAsyncModel(data, self._client)