Sha256: 6203b5e48d314e110550b34176cc10a58f681d1b9daad70e0064fa13e2ab6bd9
Contents?: true
Size: 1.29 KB
Versions: 11
Compression:
Stored size: 1.29 KB
Contents
module MpApi class Token attr_reader :card_number, :expiration_year, :expiration_month, :security_code, :cardholder_name, :id, :errors def initialize(card_number:, expiration_year:, expiration_month:, security_code:, cardholder_name:, id: nil, errors: nil) @card_number = card_number @expiration_year = expiration_year @expiration_month = expiration_month @security_code = security_code @cardholder_name = cardholder_name @id = id @errors = errors end def build_json { card_number: card_number, expiration_year: expiration_year, expiration_month: expiration_month, security_code: security_code, cardholder: { name: cardholder_name } } end def create response = Client.new.create_token(JSON.dump(build_json)) self.class.new(**self.class.build_hash(response.json)) end def self.build_hash(response) { id: response["id"], expiration_year: response["expiration_year"], expiration_month: response["expiration_month"], cardholder_name: response.dig("cardholder", "name"), card_number: response["card_number"], security_code: response["security_code"], errors: response["error"] } end end end
Version data entries
11 entries across 11 versions & 1 rubygems