class Stormpath::Provider::AccountResolver

Attributes

data_store[R]
parent_href[R]
request[R]

Public Class Methods

new(data_store, parent_href, request) click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
22 def initialize(data_store, parent_href, request)
23   @data_store = data_store
24   @parent_href = parent_href
25   @request = request
26   assert_not_nil(parent_href, 'parent_href argument must be specified')
27   assert_kind_of(AccountRequest, request, "Only #{AccountRequest} instances are supported.")
28 end

Public Instance Methods

provider_data() click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
35 def provider_data
36   # TODO: need to add an options hash and pass all attributes from the providers?
37   # https://stormpath.atlassian.net/wiki/display/AM/Social+Login+V2/#SocialLoginV2-ClientAPIChanges
38   @provider_data ||= {}.tap do |body|
39     body[request.token_type.to_s.camelize(:lower)] = request.token_value
40     body['providerId'] = request.provider
41     body['accountStore'] = request_account_store_hash if request.account_store.present?
42   end
43 end
resolve_provider_account() click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
30 def resolve_provider_account
31   attempt.provider_data = provider_data
32   data_store.create(href, attempt, Stormpath::Provider::AccountResult)
33 end

Private Instance Methods

attempt() click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
47 def attempt
48   @attempt ||= data_store.instantiate(AccountAccess)
49 end
href() click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
51 def href
52   "#{parent_href}/accounts"
53 end
request_account_store_hash() click to toggle source
   # File lib/stormpath-sdk/provider/account_resolver.rb
55 def request_account_store_hash
56   request.account_store.transform_keys { |key| key.to_s.camelize(:lower) }
57 end