def _gadmin_member_delete(message: Message, service: Resource, group: str, emails: list[str]) -> None: """ 指定したメンバーを指定したグループから削除する :param service: Google API との接続 :param group: グループのメールアドレス :param mail: 追加/削除するメンバーのメールアドレス """ for email in emails: try: service.members().delete(groupKey=group, memberKey=email).execute() botsend(message, f"`{group}` グループから `{email}` を削除しました") except HttpError as e: # TODO: グループが間違っている場合とメンバーのエラーの場合わけ botsend(message, f"メンバーの削除に失敗しました\n`{e}`")
def get_members_for_group(admin: Resource, group_email: str) -> List[Dict]: """ Get all members for a google group :param group_email: A string representing the email address for the group :return: List of dictionaries representing Users or Groups. """ request = admin.members().list( groupKey=group_email, maxResults=500, ) members: List[Dict] = [] while request is not None: resp = request.execute(num_retries=GOOGLE_API_NUM_RETRIES) members = members + resp.get('members', []) request = admin.members().list_next(request, resp) return members
def _gadmin_member_insert(message: Message, service: Resource, group: str, emails: list[str]) -> None: """ 指定したメンバーを指定したグループに追加する :param service: Google API との接続 :param group: グループのメールアドレス :param mail: 追加/削除するメンバーのメールアドレス """ for email in emails: body = { "email": email, } try: service.members().insert(groupKey=group, body=body).execute() botsend(message, f"`{group}` グループに `{email}` を追加しました") except HttpError as e: # TODO: グループが間違っている場合とメンバーのエラーの場合わけ botsend(message, f"メンバーの追加に失敗しました\n`{e}`")