Class: Remit::IpnRequest
- Inherits:
-
Object
- Object
- Remit::IpnRequest
- Defined in:
- lib/remit/ipn_request.rb
Overview
Encapsulates the logic for IPN request validation and attribute retrieval.
Constant Summary collapse
- SIGNATURE_KEY =
Signature key name used by AmazonFPS IPNs
'signature'
Instance Method Summary collapse
-
#initialize(params, secret_key) ⇒ IpnRequest
constructor
params
should be your controllers request parameters. -
#method_missing(method, *args) ⇒ Object
:nodoc:.
- #valid? ⇒ Boolean
Constructor Details
#initialize(params, secret_key) ⇒ IpnRequest
params
should be your controllers request parameters.
17 18 19 20 21 22 |
# File 'lib/remit/ipn_request.rb', line 17 def initialize(params, secret_key) raise ArgumentError, "Expected the request params hash, received: #{params.inspect}" unless params.kind_of?(Hash) @params = strip_keys_from(params, 'action', 'controller') @supplied_signature = @params.delete(SIGNATURE_KEY) @secret_key = secret_key end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
:nodoc:
29 30 31 32 33 34 35 |
# File 'lib/remit/ipn_request.rb', line 29 def method_missing(method, *args) #:nodoc: if @params.has_key?(method.to_s) @params[method.to_s] else super(method, *args) end end |
Instance Method Details
#valid? ⇒ Boolean
24 25 26 27 |
# File 'lib/remit/ipn_request.rb', line 24 def valid? return false unless @supplied_signature generate_signature_for(@params) == @supplied_signature end |