Class: Fondy::Signature
- Inherits:
-
Object
- Object
- Fondy::Signature
- Defined in:
- lib/fondy/signature.rb
Class Method Summary collapse
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(params:, password:) ⇒ Signature
constructor
A new instance of Signature.
- #verify ⇒ Object
Constructor Details
#initialize(params:, password:) ⇒ Signature
Returns a new instance of Signature.
12 13 14 15 |
# File 'lib/fondy/signature.rb', line 12 def initialize(params:, password:) @params = params @password = password end |
Class Method Details
.build(*args) ⇒ Object
4 5 6 |
# File 'lib/fondy/signature.rb', line 4 def self.build(*args) new(*args).build end |
.verify(*args) ⇒ Object
8 9 10 |
# File 'lib/fondy/signature.rb', line 8 def self.verify(*args) new(*args).verify end |
Instance Method Details
#build ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/fondy/signature.rb', line 17 def build filtered_params = params.reject do |k, v| %w(signature response_signature_string).include?(k.to_s) || v.to_s.empty? end params_str = filtered_params.sort_by(&:first).map(&:last).join('|') Digest::SHA1.hexdigest("#{password}|#{params_str}") end |
#verify ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fondy/signature.rb', line 25 def verify unless params[:signature] raise Fondy::InvalidSignatureError, 'Response signature not found' end signature = build unless params[:signature] == signature raise Fondy::InvalidSignatureError, 'Invalid response signature' end true end |