Sha256: 8af607f2d7bc2e11d68a5951fd39da637a0263b308912533132f3b6bdec1b9c1

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

module PayPal::Permissions
  class Permission < PayPal::Permissions::Base

    attr_accessor :token
    attr_accessor :scope
    attr_accessor :callback

    def scope=(scopes)
      scopes = scopes.to_sym if scopes.is_a?(String)
      scopes = [scopes] if scopes.is_a?(Symbol)
      @scope = scopes.map{|scope| PayPal::Permissions::Request::SCOPE_TYPES[scope.to_sym] }.compact
    end

    def get_permission
      Response.process(:get_permissions, request.run(:get_permissions, self.to_hash(:token, :request_envelope)))
    end

    def request_permission
      response = Response.process(:request_permissions, request.run(:request_permissions, self.to_hash(:scope, :callback, :request_envelope)))
      self.token = response.token
      response
    end

    def cancel_permission
      Response.process(:cancel_permissions, request.run(:cancel_permissions, self.to_hash(:token, :request_envelope)))
    end

    def request_url
      "#{PayPal::Permissions::Api.site_endpoint}?cmd=_grant-permission&request_token=#{self.token}"
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
paypal-payment-0.1.2 lib/paypal/permissions/permission.rb