class Chatkit: client = Client() def __init__(self, **kwargs): base_options = { 'locator': kwargs.get('instance_locator'), 'key': kwargs.get('key'), 'port': kwargs.get('port'), 'host': kwargs.get('host'), 'client': kwargs.get('client') } self.api_instance = Pusher({ **base_options, **{ 'service_name': 'chatkit', 'service_version': 'v1' } }) self.authorizer_instance = Pusher({ **base_options, **{ 'service_name': 'chatkit_authorizer', 'service_version': 'v1' } }) def authenticate(self, request, **kwargs): return self.api_instance.authenticate(request, kwargs) def generate_access_token(self, **kwargs): return self.api_instance.generate_access_token(kwargs) # User API def create_user(self, id, name, avatar_url, custom_data): pass def delete_user(self, id): pass def get_users(self, from_id): pass def get_users_by_ids(self, user_ids): pass # Room API def get_room(self, room_id): pass def get_room_messages(self, room_id, initial_id, direction, limit): pass def get_rooms(self, from_id): pass # Authorizer API def create_room_role(self, name, permissions): return self._create_role(name, Permissions.ROOM_SCOPE, permissions) def create_global_role(self, name, permissions): return self._create_role(name, Permissions.GLOBAL_SCOPE, permissions) def delete_room_role(self, role_name): return self._delete_role(role_name, Permissions.ROOM_SCOPE) def delete_global_role(self, role_name): return self._delete_role(role_name, Permissions.GLOBAL_SCOPE) def assign_global_role_to_user(self, user_id, role_name): return self._assign_role_to_user(user_id, role_name, None) def assign_room_role_to_user(self, user_id, role_name, room_id): return self._assign_role_to_user(user_id, role_name, room_id) def get_roles(self): pass def get_user_roles(self, user_id): pass def remove_global_role_for_user(self, user_id): return self._remove_role_for_user(user_id, None) def remove_room_role_for_user(self, user_id, room_id): return self._remove_role_for_user(user_id, room_id) def get_permissions_for_global_role(self, role_name): return self._get_permissions_for_role(role_name, Permissions.GLOBAL_SCOPE) def get_permissions_for_room_role(self, role_name): return self._get_permissions_for_role(role_name, Permissions.ROOM_SCOPE) def update_role_permissions(self, role_name, scope, permissions_to_add, permissions_to_remove): self._check_permissions(permissions_to_add + permissions_to_remove) def _create_role(self, name, scope, permissions): pass def _delete_role(self, role_name, scope): pass def _assign_role_to_user(self, user_id, role_name, room_id): pass def _remove_role_for_user(self, user_id, room_id): pass def _get_permissions_for_role(self, role_name, scope): pass def _check_permissions(self, permissions): pass