from typing import Optional from ..models.group import * class GroupService: def __init__(self, client): self.client = client def create_group(self, instance_id: str, data: CreateGroup, instance_token: str): return self.client.post( f'group/create/{instance_id}', data=data.__dict__, instance_token=instance_token ) def update_group_picture(self, instance_id: str, group_jid: str, data: GroupPicture, instance_token: str): return self.client.post( f'group/updateGroupPicture/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def update_group_subject(self, instance_id: str, group_jid: str, data: GroupSubject, instance_token: str): return self.client.post( f'group/updateGroupSubject/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def update_group_description(self, instance_id: str, group_jid: str, data: GroupDescription, instance_token: str): return self.client.post( f'group/updateGroupDescription/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def get_invite_code(self, instance_id: str, group_jid: str, instance_token: str): return self.client.get( f'group/inviteCode/{instance_id}', params={'groupJid': group_jid}, instance_token=instance_token ) def revoke_invite_code(self, instance_id: str, group_jid: str, instance_token: str): return self.client.post( f'group/revokeInviteCode/{instance_id}', params={'groupJid': group_jid}, instance_token=instance_token ) def send_invite(self, instance_id: str, data: GroupInvite, instance_token: str): return self.client.post( f'group/sendInvite/{instance_id}', data=data.__dict__, instance_token=instance_token ) def get_invite_info(self, instance_id: str, invite_code: str, instance_token: str): return self.client.get( f'group/inviteInfo/{instance_id}', params={'inviteCode': invite_code}, instance_token=instance_token ) def get_group_info(self, instance_id: str, group_jid: str, instance_token: str): return self.client.get( f'group/findGroupInfos/{instance_id}', params={'groupJid': group_jid}, instance_token=instance_token ) def fetch_all_groups(self, instance_id: str, instance_token: str, get_participants: bool = False): return self.client.get( f'group/fetchAllGroups/{instance_id}', params={'getParticipants': get_participants}, instance_token=instance_token ) def get_participants(self, instance_id: str, group_jid: str, instance_token: str): return self.client.get( f'group/participants/{instance_id}', params={'groupJid': group_jid}, instance_token=instance_token ) def update_participant(self, instance_id: str, group_jid: str, data: UpdateParticipant, instance_token: str): return self.client.post( f'group/updateParticipant/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def update_setting(self, instance_id: str, group_jid: str, data: UpdateSetting, instance_token: str): return self.client.post( f'group/updateSetting/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def toggle_ephemeral(self, instance_id: str, group_jid: str, data: ToggleEphemeral, instance_token: str): return self.client.post( f'group/toggleEphemeral/{instance_id}', params={'groupJid': group_jid}, data=data.__dict__, instance_token=instance_token ) def leave_group(self, instance_id: str, group_jid: str, instance_token: str): return self.client.delete( f'group/leaveGroup/{instance_id}', params={'groupJid': group_jid}, instance_token=instance_token )