class Faraday::Response::DecodeTradevan
Public Class Methods
Source
# File lib/faraday/response/decode_tradevan.rb, line 10 def initialize(app, key) super(app) @key = key end
Calls superclass method
Public Instance Methods
Source
# File lib/faraday/response/decode_tradevan.rb, line 15 def call(env) @app.call(env).on_complete do |env| if env[:body] && env[:body]['Success'] != 'E' env[:body]['Message'] = decrypt(@key, env[:body]['Message']) end end end
Private Instance Methods
Source
# File lib/faraday/response/decode_tradevan.rb, line 25 def decrypt(key, content) cipher = OpenSSL::Cipher::AES.new(128, :CBC) cipher.decrypt cipher.key = key cipher.iv = key cipher.padding = 0 decrypted = cipher.update(Base64.decode64(content)) + cipher.final JSON.load(decrypted.strip) end