Пример #1
0
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}`")
Пример #2
0
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
Пример #3
0
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}`")