class CloudPrint::Auth

Public Class Methods

new(client, options = {}) click to toggle source
# File lib/cloudprint/auth.rb, line 5
def initialize(client, options = {})
  @client = client
  @access_type = options[:access_type] || 'offline'
end

Public Instance Methods

generate_token(code, redirect_uri) click to toggle source
# File lib/cloudprint/auth.rb, line 18
def generate_token(code, redirect_uri)
  full_token = @client.oauth_client.auth_code.get_token(code, redirect_uri: redirect_uri)
  @client.refresh_token = full_token.refresh_token
end
generate_url(redirect_uri) click to toggle source
# File lib/cloudprint/auth.rb, line 10
def generate_url(redirect_uri)
  URI::HTTPS.build(
    host: 'accounts.google.com',
    path: '/o/oauth2/v2/auth',
    query: URI.encode_www_form(url_params(redirect_uri))
  ).to_s
end

Private Instance Methods

url_params(redirect_uri) click to toggle source
# File lib/cloudprint/auth.rb, line 25
def url_params(redirect_uri)
  {
    response_type: 'code',
    scope: 'https://www.googleapis.com/auth/cloudprint',
    client_id: @client.client_id,
    access_type: @access_type,
    redirect_uri: redirect_uri
  }
end