Class: LolitaBankLink::Response
- Inherits:
-
Object
- Object
- LolitaBankLink::Response
- Defined in:
- lib/lolita-bank-link/response.rb
Instance Attribute Summary collapse
-
#crypt ⇒ Object
readonly
Returns the value of attribute crypt.
-
#error ⇒ Object
Returns the value of attribute error.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#required_params ⇒ Object
readonly
Returns the value of attribute required_params.
-
#signature ⇒ Object
readonly
Returns the value of attribute signature.
Instance Method Summary collapse
- #completed? ⇒ Boolean
-
#initialize(params) ⇒ Response
constructor
A new instance of Response.
- #paymentable_id ⇒ Object
- #return_path ⇒ Object
- #transaction ⇒ Object
- #update_transaction ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(params) ⇒ Response
Returns a new instance of Response.
6 7 8 9 10 |
# File 'lib/lolita-bank-link/response.rb', line 6 def initialize params @params = read_required_params(params) @signature = read_signature(params) @crypt = LolitaBankLink::Crypt.new end |
Instance Attribute Details
#crypt ⇒ Object (readonly)
Returns the value of attribute crypt.
3 4 5 |
# File 'lib/lolita-bank-link/response.rb', line 3 def crypt @crypt end |
#error ⇒ Object
Returns the value of attribute error.
4 5 6 |
# File 'lib/lolita-bank-link/response.rb', line 4 def error @error end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
3 4 5 |
# File 'lib/lolita-bank-link/response.rb', line 3 def params @params end |
#required_params ⇒ Object (readonly)
Returns the value of attribute required_params.
3 4 5 |
# File 'lib/lolita-bank-link/response.rb', line 3 def required_params @required_params end |
#signature ⇒ Object (readonly)
Returns the value of attribute signature.
3 4 5 |
# File 'lib/lolita-bank-link/response.rb', line 3 def signature @signature end |
Instance Method Details
#completed? ⇒ Boolean
19 20 21 |
# File 'lib/lolita-bank-link/response.rb', line 19 def completed? self.params[:service].to_i == 1101 end |
#paymentable_id ⇒ Object
42 43 44 |
# File 'lib/lolita-bank-link/response.rb', line 42 def paymentable_id transaction && transaction.paymentable_id end |
#return_path ⇒ Object
38 39 40 |
# File 'lib/lolita-bank-link/response.rb', line 38 def return_path transaction.paymentable.bank_link_return_path end |
#transaction ⇒ Object
34 35 36 |
# File 'lib/lolita-bank-link/response.rb', line 34 def transaction @trx ||= LolitaBankLink::Transaction.where(id: params[:ref]).first end |
#update_transaction ⇒ Object
12 13 14 15 16 17 |
# File 'lib/lolita-bank-link/response.rb', line 12 def update_transaction if valid? new_status = completed? ? "completed" : "failed" transaction.update_attributes!(params.merge(status: new_status)) end end |
#valid? ⇒ Boolean
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/lolita-bank-link/response.rb', line 23 def valid? if self.params[:rec_id] != LolitaBankLink.sender self.error = "Wrong sender" and return false elsif !self.crypt.verify_mac_signature(self.params,self.signature) self.error = "Wrong signature" and return false elsif transaction.status.to_sym != :processing self.error = "Transaction has wrong status: #{transaction.status}" end self.error.blank? end |