Sha256: 1f962a0c3c4cbdc869ff16dbd8b38f18c5c10cdaee069797456d4a543ef301c9

Contents?: true

Size: 1.71 KB

Versions: 7

Compression:

Stored size: 1.71 KB

Contents

class GoogleAppsClient
  def initialize( client )
    @client = client
  end

  def self.client( identity )
    client = Google::APIClient.new(:application_name => 'HappySeed App', :application_version => "1.0.0" )
    client.authorization.update_token!({:access_token => identity.accesstoken, :refresh_token => identity.refreshtoken})
    GoogleAppsClient.new( client )
  end

  def admin_api
    @admin_api ||= @client.discovered_api("admin", "directory_v1")
  end

  def list_users( domain = "happyfuncorp.com" )
    request = { api_method: admin_api.users.list }
    request[:parameters] = { domain: domain }
    @client.execute request
  end

  def is_valid_user?( email, domain = "happyfuncorp.com" )
    users = list_users( domain )
    users.data['users'].each do |user|
      if user['primaryEmail'].downcase == email.downcase
        return true
      end
    end
    return false
  end

  def ensure_user( email, first_name, last_name )
    if !is_valid_user?( email )
      new_user = admin_api.users.insert.request_schema.new({
        'password' => 'happiness4u',
        'primaryEmail' => email,
        'name' => {
          'familyName' => last_name,
          'givenName' => first_name
        },
        changePasswordAtNextLogin: true
      })

      result = @client.execute(
        :api_method => admin_api.users.insert,
        :body_object => new_user
      )
    end
  end

  def list_groups( domain = "happyfuncorp.com" )
    request = { api_method: admin_api.groups.list }
    request[:parameters] = { domain: domain }
    @client.execute request
  end

  def list_members( group_key )
    request = { api_method: admin_api.members.list }
    request[:parameters] = { groupKey: group_key }
    @client.execute request
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
happy_seed-0.0.21 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.19 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.18 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.17 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.16 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.15 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb
happy_seed-0.0.14 lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb