Class: Spree::Api::V2::Storefront::CrossAppHandoffTokensController

Inherits:
ResourceController
  • Object
show all
Defined in:
app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb

Defined Under Namespace

Classes: Resource

Instance Method Summary collapse

Instance Method Details

#create ⇒ Object



15
16
17
18
19
20
21
22
# File 'app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb', line 15

def create
  return render_error_payload(I18n.t('authenticator.incorrect_login'), 401) if spree_current_user.blank?

  result = SpreeCmCommissioner::CrossAppHandoffTokens::Encode.call(user: spree_current_user, purpose: purpose)
  return render_error_payload(result.error, 422) unless result.success?

  render_serialized_payload(201) { serialize_resource(Resource.new(result.value[:token], result.value[:expires_at])) }
end

#resource_serializer ⇒ Object



28
29
30
# File 'app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb', line 28

def resource_serializer
  SpreeCmCommissioner::V2::Storefront::CrossAppHandoffTokenSerializer
end

#serialize_resource(resource) ⇒ Object



24
25
26
# File 'app/controllers/spree/api/v2/storefront/cross_app_handoff_tokens_controller.rb', line 24

def serialize_resource(resource)
  resource_serializer.new(resource).serializable_hash
end