class GoogleAppsClient

Public Class Methods

client( identity ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 6
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
new( client ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 2
def initialize( client )
  @client = client
end

Public Instance Methods

admin_api() click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 12
def admin_api
  @admin_api ||= @client.discovered_api("admin", "directory_v1")
end
ensure_user( email, first_name, last_name ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 32
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
is_valid_user?( email, domain = "happyfuncorp.com" ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 22
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
list_groups( domain = "happyfuncorp.com" ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 51
def list_groups( domain = "happyfuncorp.com" )
  request = { api_method: admin_api.groups.list }
  request[:parameters] = { domain: domain }
  @client.execute request
end
list_members( group_key ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 57
def list_members( group_key )
  request = { api_method: admin_api.members.list }
  request[:parameters] = { groupKey: group_key }
  @client.execute request
end
list_users( domain = "happyfuncorp.com" ) click to toggle source
# File lib/generators/happy_seed/googleoauth/templates/app/models/google_apps_client.rb, line 16
def list_users( domain = "happyfuncorp.com" )
  request = { api_method: admin_api.users.list }
  request[:parameters] = { domain: domain }
  @client.execute request
end