module Josef::GoogleWorkspace::Members

Public Instance Methods

add_member(group_mail_address, member_mail_address) click to toggle source
# File lib/josef/google_workspace/members.rb, line 23
def add_member(group_mail_address, member_mail_address)
  member = ::Google::Apis::AdminDirectoryV1::Member.new(email: member_mail_address)
  group = groups.find{|g| g.email == group_mail_address}
  client.insert_member(group.id, member)
end
del_member(group_mail_address, member_mail_address) click to toggle source
# File lib/josef/google_workspace/members.rb, line 29
def del_member(group_mail_address, member_mail_address)
  group = groups.find{|g| g.email == group_mail_address}
  member = members_by(group).find{ |member| member.email == member_mail_address }
  client.delete_member(group.id, member.id)
end
member_mail_addreses(group) click to toggle source
# File lib/josef/google_workspace/members.rb, line 4
def member_mail_addreses(group)
  members_by(group)&.map do | member |
    member.email
  end
end
members_by(group) click to toggle source
# File lib/josef/google_workspace/members.rb, line 10
def members_by(group)
  res = client.list_members(group.id)
  members = res.members
  next_page_token = res.next_page_token
  while next_page_token.nil?.!
    res = client.list_members(group.id, page_token: next_page_token)
    next_page_token = res.next_page_token
    members.concat(res.members)
  end

  members || []
end