Class: Trustev::Transaction

Inherits:
Object
  • Object
show all
Defined in:
lib/trustev/transaction.rb

Constant Summary collapse

SERVICE_URL =
'TransactionService.svc/rest/Transaction'
CURRENCY_CODES =
%w(ADP AED AFA AFN ALK ALL AMD ANG AOA AOK AON AOR ARA ARP ARS
ARY ATS AUD AWG AYM AZM AZN BAD BAM BBD BDT BEC BEF BEL BGJ
BGK BGL BGN BHD BIF BMD BND BOB BOP BOV BRB BRC BRE BRL BRN
BRR BSD BTN BUK BWP BYB BYR BZD CAD CDF CHC CHE CHF CHW CLF
CLP CNX CNY COP COU CRC CSD CSJ CSK CUC CUP CVE CYP CZK DDM
DEM DJF DKK DOP DZD ECS ECV EEK EGP EQE ERN ESA ESB ESP ETB
EUR FIM FJD FKP FRF GBP GEK GEL GHC GHP GHS GIP GMD GNE GNF
GNS GQE GRD GTQ GWE GWP GYD HKD HNL HRD HRK HTG HUF IDR IEP
ILP ILR ILS INR IQD IRR ISJ ISK ITL JMD JOD JPY KES KGS KHR
KMF KPW KRW KWD KYD KZT LAJ LAK LBP LKR LRD LSL LSM LTL LTT
LUC LUF LUL LVL LVR LYD MAD MAF MDL MGA MGF MKD MLF MMK MNT
MOP MRO MTL MTP MUR MVQ MVR MWK MXN MXP MXV MYR MZE MZM MZN
NAD NGN NIC NIO NLG NOK NPR NZD OMR PAB PEH PEI PEN PES PGK
PHP PKR PLN PLZ PTE PYG QAR RHD ROK ROL RON RSD RUB RUR RWF
SAR SBD SCR SDD SDG SDP SEK SGD SHP SIT SKK SLL SOS SRD SRG
SSP STD SUR SVC SYP SZL THB TJR TJS TMM TMT TND TOP TPE TRL
TRY TTD TWD TZS UAH UAK UGS UGW UGX USD USN USS UYI UYN UYP
UYU UZS VEB VEF VNC VND VUV WST XAF XAG XAU XBA XBB XBC XBD
XCD XDR XEU XFO XFU XOF XPD XPF XPT XRE XSU XTS XUA XXX YDD
YER YUD YUM YUN ZAL ZAR ZMK ZRN ZRZ ZWC ZWD ZWL ZWN ZWR)
COUNTRY_CODES =
%w(AC AD AE AF AG AI AL AM AN AO AQ AR AS AT AU AW AX AZ BA BB BD
BE BF BG BH BI BJ BM BN BO BR BS BT BV BW BY BZ CA CC CD CF CG
CH CI CK CL CM CN CO CR CU CV CX CY CZ DE DJ DK DM DO DZ EC EE
EG ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN
GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ
IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC
LI LK LR LS LT LU LV LY MA MC MD ME MG MH MK ML MM MN MO MP MQ
MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NS NU
NZ OM PA PE PF PG PH PK PL PM PN PR PT PW PY QA RE RO RS RU RW
SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR ST SV SY SZ TA TC
TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ
VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW)

Instance Method Summary collapse

Constructor Details

#initialize(transaction_number) ⇒ Transaction

Returns a new instance of Transaction.

Raises:



42
43
44
45
# File 'lib/trustev/transaction.rb', line 42

def initialize(transaction_number)
  raise Error.new('TransactionNumber is required.') if transaction_number.nil?
  @transaction_number = transaction_number
end

Instance Method Details

#create(transaction = nil) ⇒ Object

Raises:



47
48
49
50
51
# File 'lib/trustev/transaction.rb', line 47

def create(transaction=nil)
  raise Error.new('Transaction options are missing') if transaction.nil?
  validate(transaction)
  Trustev.send_request SERVICE_URL, build(transaction), 'POST'
end

#set_bin(bin) ⇒ Object

Raises:



71
72
73
74
75
76
77
# File 'lib/trustev/transaction.rb', line 71

def set_bin(bin)
  raise Error.new('BIN is required') if bin.nil?
  body = {
    BINNumber: bin
  }
  Trustev.send_request "#{SERVICE_URL}/#{@transaction_number}/BIN", body, 'PUT'
end

#set_status(status, reason, comment) ⇒ Object

Raises:



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/trustev/transaction.rb', line 59

def set_status(status, reason, comment)
  raise Error.new('Invalid Status Code') if Trustev::STATUS_TYPES.key(status).nil?
  raise Error.new('Invalid Reason Code') if Trustev::REASON_TYPES.key(reason).nil?
  raise Error.new('Status comment cannot be blank') if comment.nil? || comment.empty?
  body = {
    Status: status,
    Reason: reason,
    Comment: comment
  }
  Trustev.send_request "#{SERVICE_URL}/#{@transaction_number}/Status", body, 'PUT'
end

#update(transaction = nil) ⇒ Object

Raises:



53
54
55
56
57
# File 'lib/trustev/transaction.rb', line 53

def update(transaction=nil)
  raise Error.new('Transaction options are missing') if transaction.nil?
  validate(transaction)
  Trustev.send_request "#{SERVICE_URL}/#{@transaction_number}", build(transaction), 'PUT'
end