Source code for openbankproject_client.user

"""
User endpoints for the OpenBankProject API Client.
"""

from typing import Dict, List, Optional, Union, Any


[docs] class UserEndpoints: """User-related API endpoints."""
[docs] def __init__(self, client): """ Initialize the endpoint group. Args: client: OpenBankProjectClient instance """ self.client = client
[docs] def get_users(self, params: Optional[Dict] = None) -> Dict: """ Get all users. Args: params: Optional query parameters like limit, offset, etc. Returns: Dict containing user information """ return self.client.get("users", params=params)
[docs] def get_user_by_id(self, user_id: str) -> Dict: """ Get user by ID. Args: user_id: User identifier Returns: Dict containing user information """ return self.client.get(f"users/{user_id}")
[docs] def get_current_user(self) -> Dict: """ Get the current authenticated user. Returns: Dict containing current user information """ return self.client.get("users/current")
[docs] def create_user(self, data: Dict) -> Dict: """ Create a new user. Args: data: User data including username, email, password, etc. Returns: Dict containing created user information """ return self.client.post("users", data=data)
[docs] def update_user(self, user_id: str, data: Dict) -> Dict: """ Update an existing user. Args: user_id: User identifier data: Updated user data Returns: Dict containing updated user information """ return self.client.put(f"users/{user_id}", data=data)
[docs] def delete_user(self, user_id: str) -> Dict: """ Delete a user. Args: user_id: User identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}")
[docs] def get_user_attributes(self, user_id: str) -> Dict: """ Get attributes for a user. Args: user_id: User identifier Returns: Dict containing user attribute information """ return self.client.get(f"users/{user_id}/attributes")
[docs] def add_user_attribute(self, user_id: str, data: Dict) -> Dict: """ Add an attribute to a user. Args: user_id: User identifier data: Attribute data Returns: Dict containing added attribute information """ return self.client.post(f"users/{user_id}/attributes", data=data)
[docs] def update_user_attribute(self, user_id: str, attribute_id: str, data: Dict) -> Dict: """ Update an attribute of a user. Args: user_id: User identifier attribute_id: Attribute identifier data: Updated attribute data Returns: Dict containing updated attribute information """ return self.client.put(f"users/{user_id}/attributes/{attribute_id}", data=data)
[docs] def delete_user_attribute(self, user_id: str, attribute_id: str) -> Dict: """ Delete an attribute from a user. Args: user_id: User identifier attribute_id: Attribute identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}/attributes/{attribute_id}")
[docs] def get_user_entitlements(self, user_id: str) -> Dict: """ Get entitlements for a user. Args: user_id: User identifier Returns: Dict containing user entitlement information """ return self.client.get(f"users/{user_id}/entitlements")
[docs] def add_user_entitlement(self, user_id: str, data: Dict) -> Dict: """ Add an entitlement to a user. Args: user_id: User identifier data: Entitlement data Returns: Dict containing added entitlement information """ return self.client.post(f"users/{user_id}/entitlements", data=data)
[docs] def delete_user_entitlement(self, user_id: str, entitlement_id: str) -> Dict: """ Delete an entitlement from a user. Args: user_id: User identifier entitlement_id: Entitlement identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}/entitlements/{entitlement_id}")
[docs] def get_user_permissions(self, user_id: str) -> Dict: """ Get permissions for a user. Args: user_id: User identifier Returns: Dict containing user permission information """ return self.client.get(f"users/{user_id}/permissions")
[docs] def add_user_permission(self, user_id: str, data: Dict) -> Dict: """ Add a permission to a user. Args: user_id: User identifier data: Permission data Returns: Dict containing added permission information """ return self.client.post(f"users/{user_id}/permissions", data=data)
[docs] def delete_user_permission(self, user_id: str, permission_id: str) -> Dict: """ Delete a permission from a user. Args: user_id: User identifier permission_id: Permission identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}/permissions/{permission_id}")
[docs] def get_user_authentication_methods(self, user_id: str) -> Dict: """ Get authentication methods for a user. Args: user_id: User identifier Returns: Dict containing user authentication method information """ return self.client.get(f"users/{user_id}/authentication-methods")
[docs] def add_user_authentication_method(self, user_id: str, data: Dict) -> Dict: """ Add an authentication method to a user. Args: user_id: User identifier data: Authentication method data Returns: Dict containing added authentication method information """ return self.client.post(f"users/{user_id}/authentication-methods", data=data)
[docs] def delete_user_authentication_method(self, user_id: str, method_id: str) -> Dict: """ Delete an authentication method from a user. Args: user_id: User identifier method_id: Authentication method identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}/authentication-methods/{method_id}")
[docs] def get_user_customers(self, user_id: str) -> Dict: """ Get customers linked to a user. Args: user_id: User identifier Returns: Dict containing user customer information """ return self.client.get(f"users/{user_id}/customers")
[docs] def get_user_customer_by_id(self, user_id: str, customer_id: str) -> Dict: """ Get a specific customer linked to a user. Args: user_id: User identifier customer_id: Customer identifier Returns: Dict containing user customer information """ return self.client.get(f"users/{user_id}/customers/{customer_id}")
[docs] def create_user_customer(self, user_id: str, data: Dict) -> Dict: """ Create a customer linked to a user. Args: user_id: User identifier data: Customer data Returns: Dict containing created customer information """ return self.client.post(f"users/{user_id}/customers", data=data)
[docs] def update_user_customer(self, user_id: str, customer_id: str, data: Dict) -> Dict: """ Update a customer linked to a user. Args: user_id: User identifier customer_id: Customer identifier data: Updated customer data Returns: Dict containing updated customer information """ return self.client.put(f"users/{user_id}/customers/{customer_id}", data=data)
[docs] def delete_user_customer(self, user_id: str, customer_id: str) -> Dict: """ Delete a customer linked to a user. Args: user_id: User identifier customer_id: Customer identifier Returns: Dict containing deletion status """ return self.client.delete(f"users/{user_id}/customers/{customer_id}")