Class: Spree::Api::V2::Storefront::QrUrlsController

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

Instance Method Summary collapse

Instance Method Details

#find_url_by_qr_data(qr_data) ⇒ Object

currently only support guest QR



18
19
20
# File 'app/controllers/spree/api/v2/storefront/qr_urls_controller.rb', line 18

def find_url_by_qr_data(qr_data)
  guest_qr_url(qr_data)
end

#guest_qr_url(qr_data) ⇒ Object



22
23
24
25
26
27
28
29
# File 'app/controllers/spree/api/v2/storefront/qr_urls_controller.rb', line 22

def guest_qr_url(qr_data)
  guest = SpreeCmCommissioner::Guest.find_by!(token: qr_data)

  host = Spree.cdn_host || Rails.application.routes.default_url_options[:host]
  port = Rails.application.routes.default_url_options[:port]

  Rails.application.routes.url_helpers.guest_cards_url(guest.token, host: host, port: port)
end

#resource_serializerObject

override



7
8
9
# File 'app/controllers/spree/api/v2/storefront/qr_urls_controller.rb', line 7

def resource_serializer
  SpreeCmCommissioner::V2::Storefront::QrUrlSerializer
end

#showObject



11
12
13
14
15
# File 'app/controllers/spree/api/v2/storefront/qr_urls_controller.rb', line 11

def show
  url = find_url_by_qr_data(params[:id])
  resource = Struct.new(:id, :url).new(id: params[:id], url: url)
  render_serialized_payload { serialize_resource(resource) }
end