class Netfira::WebConnect::RackApp::Action::Version8::Confirm

Private Class Methods

types() click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/confirm.rb, line 25
def self.types
  @types ||= Model::Record.sendable.map { |k| [k.plural_name.camelize(:lower), k] }.to_h
end

Public Instance Methods

call() click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/confirm.rb, line 6
def call
  allow :put, Hash
  self.class.types.each do |type, klass|
    ids = input[type]
    ids.each { |guid| confirm_delivery klass, guid if %r`^[\w+/]{22}$` === guid } if Array === ids
  end
  {}
end

Private Instance Methods

confirm_delivery(klass, guid) click to toggle source
# File lib/netfira/web_connect/rack_app/actions/version_8/confirm.rb, line 17
def confirm_delivery(klass, guid)
  record = klass.find_by(shop_id: shop.id, guid: Guid.from_base64(guid).b)
  if record
    record.delivered!
    record.save!
  end
end