module Josef::GoogleWorkspace::Group

Public Instance Methods

create_group(group_mail_address) click to toggle source
# File lib/josef/google_workspace/group.rb, line 28
def create_group(group_mail_address)
  group = ::Google::Apis::AdminDirectoryV1::Group.new(email: group_mail_address)

  client.insert_group(group)
end
delete_group(group_mail_address) click to toggle source
# File lib/josef/google_workspace/group.rb, line 34
def delete_group(group_mail_address)
  group = groups.find{|g| g.email == group_mail_address}

  client.delete_group(group.id)
end
groups() click to toggle source
# File lib/josef/google_workspace/group.rb, line 8
def groups
  @_groups ||= groups!
end
groups!() click to toggle source
# File lib/josef/google_workspace/group.rb, line 12
def groups!
  domains.map do | domain |
    res = client.list_groups(domain: domain)
    domain_groups = res.groups
    next_page_token = res.next_page_token

    while next_page_token.nil?.!
      res = client.list_groups(domain: domain, page_token: next_page_token)
      next_page_token = res.next_page_token
      domain_groups.concat(res.groups)
    end

    domain_groups
  end.flatten.compact
end