Sha256: a052578f32e163e853f464bb99b93cfda7c94ad0d832e75eb29fd7c00ea773f0

Contents?: true

Size: 602 Bytes

Versions: 1

Compression:

Stored size: 602 Bytes

Contents

module Passkit
  class PassesController  < ActionController::Base
    skip_before_action :verify_authenticity_token
    before_action :decrypt_payload, only: :create

    def create
      send_file(fetch_pass(@payload))
    end

    private

    def decrypt_payload
      @payload = Passkit::UrlEncrypt.decrypt(params[:payload])
      if DateTime.parse(@payload[:valid_until]).past?
        head :not_found
      end
    end

    def fetch_pass(payload)
      generator = payload[:generator_type].constantize.find(payload[:generator_id])
      Passkit::Factory.create_pass(generator)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
passkit-0.1.0 app/controllers/passkit/passes_controller.rb