CroemincRubyGem 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.idea/.gitignore +3 -0
  4. data/.idea/.rakeTasks +7 -0
  5. data/.idea/MetropagoRubyGem.iml +19 -0
  6. data/.idea/inspectionProfiles/Project_Default.xml +6 -0
  7. data/.idea/metropago-gateway-rubygem-sdk.iml +19 -0
  8. data/.idea/misc.xml +7 -0
  9. data/.idea/modules.xml +8 -0
  10. data/.idea/vcs.xml +6 -0
  11. data/.rspec +3 -0
  12. data/.travis.yml +7 -0
  13. data/CODE_OF_CONDUCT.md +74 -0
  14. data/CroemincRubyGem.gemspec +42 -0
  15. data/Gemfile +4 -0
  16. data/Gemfile.lock +35 -0
  17. data/LICENSE.txt +21 -0
  18. data/Rakefile +6 -0
  19. data/SDKDemo.rb +464 -0
  20. data/bin/console +14 -0
  21. data/bin/setup +8 -0
  22. data/lib/Catalogs/environment_type.rb +3 -0
  23. data/lib/Certificates/ca-bundle.crt +3866 -0
  24. data/lib/Config/application.yml +2 -0
  25. data/lib/CroemincRubyGem/version.rb +3 -0
  26. data/lib/CroemincRubyGem.rb +13 -0
  27. data/lib/Entities/ach.rb +37 -0
  28. data/lib/Entities/address.rb +97 -0
  29. data/lib/Entities/amount_range_filter.rb +60 -0
  30. data/lib/Entities/base_entity.rb +15 -0
  31. data/lib/Entities/beneficiary.rb +89 -0
  32. data/lib/Entities/credit_card.rb +150 -0
  33. data/lib/Entities/customer.rb +218 -0
  34. data/lib/Entities/customer_entity.rb +130 -0
  35. data/lib/Entities/customer_entity_response.rb +79 -0
  36. data/lib/Entities/customer_response.rb +90 -0
  37. data/lib/Entities/customer_search.rb +80 -0
  38. data/lib/Entities/customer_search_option.rb +55 -0
  39. data/lib/Entities/date_range_filter.rb +59 -0
  40. data/lib/Entities/instruction.rb +136 -0
  41. data/lib/Entities/instruction_response.rb +63 -0
  42. data/lib/Entities/instrument.rb +73 -0
  43. data/lib/Entities/instrument_response.rb +70 -0
  44. data/lib/Entities/request_model.rb +80 -0
  45. data/lib/Entities/response_model.rb +39 -0
  46. data/lib/Entities/service.rb +70 -0
  47. data/lib/Entities/text_filter.rb +45 -0
  48. data/lib/Entities/transaction.rb +162 -0
  49. data/lib/Entities/transaction_options.rb +49 -0
  50. data/lib/Entities/transaction_response.rb +79 -0
  51. data/lib/Entities/transaction_search_request.rb +57 -0
  52. data/lib/Entities/validation_error.rb +60 -0
  53. data/lib/Entities/wallet.rb +20 -0
  54. data/lib/Gateway/croeminc_gateway.rb +56 -0
  55. data/lib/Helpers/api_helper.rb +96 -0
  56. data/lib/Helpers/jso_nable.rb +56 -0
  57. data/lib/Helpers/model_parser.rb +235 -0
  58. data/lib/Managers/customer_manager.rb +148 -0
  59. data/lib/Managers/transaction_manager.rb +264 -0
  60. data/lib/MetropagoRubyGem/version.rb +3 -0
  61. data/lib/Test/customer_operations.rb +395 -0
  62. data/lib/Test/transaction_operations.rb +259 -0
  63. metadata +146 -0
@@ -0,0 +1,2 @@
1
+ development:
2
+ enable_logs: false
@@ -0,0 +1,3 @@
1
+ module CroemincRubyGem
2
+ VERSION = "0.1.2".freeze
3
+ end
@@ -0,0 +1,13 @@
1
+ require "CroemincRubyGem/version"
2
+ require "Managers/customer_manager"
3
+ require "Managers/transaction_manager"
4
+ require 'Entities/customer'
5
+ require 'Gateway/Croeminc_gateway'
6
+ require 'Entities/response_model'
7
+ require 'Test/customer_operations'
8
+ require 'Test/transaction_operations'
9
+
10
+ module CroemincRubyGem
11
+ class Error < StandardError; end
12
+ # Your code goes here...
13
+ end
@@ -0,0 +1,37 @@
1
+ require_relative '../Entities/instrument'
2
+ class ACH < Instrument
3
+
4
+ def initialize(h = nil)
5
+
6
+ if(h != nil)
7
+ h.each {
8
+ |k,v|
9
+
10
+ propNameFormatted = k.to_s + "="
11
+
12
+ #passing true because we also need to check if property exists in parent class. as it inherits Instrument
13
+ if(ACH.instance_methods(true).include?(propNameFormatted.to_sym))
14
+ public_send("#{k}=",v)
15
+ end
16
+ }
17
+ end
18
+
19
+ end
20
+
21
+ def AccountNumber=(accountNumber)
22
+ @accountNumber = accountNumber
23
+ end
24
+
25
+ def AccountHolder=(accountHolder)
26
+ @accountHolder = accountHolder
27
+ end
28
+
29
+ def ChequeNumber=(chequeNumber)
30
+ @chequeNumber = chequeNumber
31
+ end
32
+
33
+ #private String AccountNumber;
34
+ #private String AccountHolder;
35
+ #private String ChequeNumber;
36
+
37
+ end
@@ -0,0 +1,97 @@
1
+ require_relative '../Helpers/jso_nable'
2
+ class Address < JSONable
3
+
4
+ def initialize(h = nil)
5
+
6
+ if(h != nil)
7
+ h.each {
8
+ |k,v|
9
+
10
+ propNameFormatted = k.to_s + "="
11
+
12
+
13
+ if(Address.instance_methods(false).include?(propNameFormatted.to_sym))
14
+ public_send("#{k}=",v)
15
+ end
16
+ }
17
+ end
18
+
19
+ end
20
+
21
+
22
+ def AddressId=(addressId)
23
+ @addressId = addressId
24
+ end
25
+
26
+ def AddressLine1=(addressLine1)
27
+ @addressLine1 = addressLine1
28
+ end
29
+
30
+ def AddressLine2=(addressLine2)
31
+ @addressLine2 = addressLine2
32
+ end
33
+
34
+ def City=(city)
35
+ @city = city
36
+ end
37
+
38
+ def CountryName=(countryName)
39
+ @countryName = countryName
40
+ end
41
+
42
+ def SubDivision=(subDivision)
43
+ @subDivision = subDivision
44
+ end
45
+
46
+ def State=(state)
47
+ @state = state
48
+ end
49
+
50
+ def ZipCode=(zipCode)
51
+ @zipCode = zipCode
52
+ end
53
+
54
+
55
+ #Getters
56
+ def getAddressId
57
+ return @addressId
58
+ end
59
+
60
+ def getAddressLine1
61
+ return @addressLine1
62
+ end
63
+
64
+ def getAddressLine2
65
+ return @addressLine2
66
+ end
67
+
68
+ def getCity
69
+ return @city
70
+ end
71
+
72
+ def getCountryName
73
+ return @countryName
74
+ end
75
+
76
+ def getSubdivision
77
+ return @subDivision
78
+ end
79
+
80
+ def getState
81
+ return @state
82
+ end
83
+
84
+ def getZipCode
85
+ return @zipCode
86
+ end
87
+
88
+ #private String AddressId;
89
+ #private String AddressLine1;
90
+ #private String AddressLine2;
91
+ #private String City;
92
+ #private String CountryName;
93
+ #private String SubDivision;
94
+ #private String State;
95
+ #private String ZipCode;
96
+
97
+ end
@@ -0,0 +1,60 @@
1
+ require_relative '../Helpers/jso_nable'
2
+ class AmountRangeFilter < JSONable
3
+
4
+ def Amount1=(amount1) #double
5
+ @amount1 = amount1
6
+ end
7
+
8
+ def Amount2=(amount2) #double
9
+ @amount2 = amount2
10
+ end
11
+
12
+ def Operation=(operation)
13
+ @operation = operation
14
+ end
15
+
16
+ def GreaterThan(amount)
17
+ self.ClearFilter
18
+ @amount1 = amount
19
+ @operation = "GREATER_THAN"
20
+ return self
21
+ end
22
+
23
+ def LessThan(amount)
24
+ self.ClearFilter
25
+ @amount1 = amount
26
+ @operation = "LESS_THAN"
27
+ return self
28
+ end
29
+
30
+ def EqualTo(amount)
31
+ self.ClearFilter
32
+ @amount1 = amount
33
+ @operation = "EqualTo"
34
+ return self
35
+ end
36
+
37
+ def Between(amountFrom, amountTo)
38
+ self.ClearFilter
39
+ @amount1 = amountFrom
40
+ @amount2 = amountTo
41
+ @operation = "BETWEEN"
42
+ return self
43
+ end
44
+
45
+
46
+ #private
47
+
48
+ def ClearFilter
49
+
50
+ @amount1 = 0.00
51
+ @amount2 = 0.00
52
+ @operation = ""
53
+
54
+ end
55
+
56
+ #private double Amount1 = 0;
57
+ #private double Amount2 = 0;
58
+ #private String Operation = "";
59
+
60
+ end
@@ -0,0 +1,15 @@
1
+ class BaseEntity
2
+
3
+ def CustomerId=(customerId)
4
+ @customerId = customerId
5
+ end
6
+
7
+ def FriendlyName=(friendlyName)
8
+ @friendlyName = friendlyName
9
+ end
10
+
11
+ def Status=(status)
12
+ @status = status
13
+ end
14
+
15
+ end
@@ -0,0 +1,89 @@
1
+ require_relative '../Entities/service'
2
+ require_relative '../Helpers/jso_nable'
3
+ class Beneficiary < JSONable
4
+
5
+ def initialize(h = nil)
6
+
7
+ if(h != nil)
8
+ h.each {
9
+ |k,v|
10
+
11
+ propNameFormatted = k.to_s + "="
12
+
13
+
14
+ if(Beneficiary.instance_methods(false).include?(propNameFormatted.to_sym))
15
+ public_send("#{k}=",v)
16
+ end
17
+ }
18
+ end
19
+
20
+ end
21
+
22
+ def Id=(id)
23
+ @id = id
24
+ end
25
+
26
+ def Name=(name)
27
+ @name = name
28
+ end
29
+
30
+ def ShortCode=(shortCode)
31
+ @shortCode = shortCode
32
+ end
33
+
34
+ def MerchantId=(merchantId)
35
+ @merchantId = merchantId
36
+ end
37
+
38
+ def Type=(type)
39
+ @type = type
40
+ end
41
+
42
+ def Status=(status)
43
+ @status = status
44
+ end
45
+
46
+ def Services=(services) #List<Service> type
47
+ @services = services
48
+ end
49
+
50
+
51
+ #Getters
52
+ def getId
53
+ return @id
54
+ end
55
+
56
+ def getName
57
+ return @name
58
+ end
59
+
60
+ def getShortCode
61
+ return @shortCode
62
+ end
63
+
64
+ def getMerchantId
65
+ return @merchantId
66
+ end
67
+
68
+ def getType
69
+ return @type
70
+ end
71
+
72
+ def getStatus
73
+ return @status
74
+ end
75
+
76
+ def getServices
77
+ return @services
78
+ end
79
+
80
+
81
+ #private int Id;
82
+ #private String Name;
83
+ #private String ShortCode;
84
+ #private int MerchantId;
85
+ #private String Type;
86
+ #private String Status;
87
+ #private List<Service> Services;
88
+
89
+ end
@@ -0,0 +1,150 @@
1
+ require_relative '../Entities/instrument'
2
+ require_relative '../Entities/address'
3
+ class CreditCard < Instrument
4
+
5
+ def initialize(h = nil)
6
+
7
+ if(h != nil)
8
+ h.each {
9
+ |k,v|
10
+
11
+ propNameFormatted = k.to_s + "="
12
+
13
+ #set true because parent props are used
14
+ if(CreditCard.instance_methods(true).include?(propNameFormatted.to_sym))
15
+ public_send("#{k}=",v)
16
+ end
17
+ }
18
+ end
19
+
20
+ end
21
+
22
+ def Token=(token)
23
+ @token = token
24
+ end
25
+
26
+ def IssuerBank=(issuerBank)
27
+ @issuerBank = issuerBank
28
+ end
29
+
30
+ def CardholderName=(cardholderName)
31
+ @cardholderName = cardholderName
32
+ end
33
+
34
+ def CustomerIdentifier=(customerIdentifier)
35
+ @customerIdentifier = customerIdentifier
36
+ end
37
+
38
+
39
+ def Number=(number)
40
+ @number = number
41
+ end
42
+
43
+ def CVV=(cVV)
44
+ @cVV = cVV
45
+ end
46
+
47
+ def ExpirationDate=(expirationDate)
48
+ @expirationDate = expirationDate
49
+ end
50
+
51
+ #def ExpirationMonth=(expirationMonth)
52
+ # @expirationMonth = expirationMonth
53
+ #end
54
+
55
+ #def ExpirationYear=(expirationYear)
56
+ # @expirationYear = expirationYear
57
+ #end
58
+
59
+ def CardType=(cardType)
60
+ @cardType = cardType
61
+ end
62
+
63
+ def IsVerified=(isVerified)
64
+ @isVerified = isVerified
65
+ end
66
+
67
+ def CreatedDate=(createdDate)
68
+ @createdDate = createdDate
69
+ end
70
+
71
+ def Address=(address) #Address type
72
+ @address = address
73
+ end
74
+
75
+ def CustomFields=(customFields) #h = Hash.new (Hash type)
76
+ @customFields = customFields
77
+ end
78
+
79
+ #Format: MMYY
80
+ def SetExpiration(month, year)
81
+ if(year.length > 2)
82
+ self.ExpirationDate = month + year[2..-1]
83
+ else
84
+ self.ExpirationDate = month + year
85
+ end
86
+ end
87
+
88
+ #Getters
89
+ def getAddress
90
+ return @address
91
+ end
92
+
93
+ def getToken
94
+ return @token
95
+ end
96
+
97
+ def getCustomFields
98
+ return @customFields
99
+ end
100
+
101
+ def getCardHolder
102
+ return @cardholderName
103
+ end
104
+
105
+ def getNumber
106
+ return @number
107
+ end
108
+
109
+ def getCVV
110
+ return @cVV
111
+ end
112
+
113
+ def getExpirationDate
114
+ return @expirationDate
115
+ end
116
+
117
+ def getCardType
118
+ return @cardType
119
+ end
120
+
121
+ def getIssuerBank
122
+ return @issuerBank
123
+ end
124
+
125
+ def getCustomerIdentifier
126
+ return @customerIdentifier
127
+ end
128
+
129
+ def getIsVerified
130
+ return @isVerified
131
+ end
132
+
133
+ def getCreatedDate
134
+ return @createdDate
135
+ end
136
+
137
+ #private String CardholderName;
138
+ #private String Number;
139
+ #private String CVV;
140
+ #private String ExpirationDate;
141
+ #private String ExpirationMonth;
142
+ #private String ExpirationYear;
143
+ #private String CardType;
144
+ #private boolean IsVerified;
145
+ #private String CreatedDate;
146
+ #private Address Address;
147
+ #private HashMap CustomFields;#
148
+
149
+
150
+ end
@@ -0,0 +1,218 @@
1
+ #require_relative '../Entities/base_entity'
2
+ require_relative '../Helpers/jso_nable'
3
+ require_relative '../Entities/credit_card'
4
+ require_relative '../Entities/customer_response'
5
+ require_relative '../Entities/ach'
6
+ require_relative '../Entities/address'
7
+ require_relative '../Entities/instruction'
8
+ require_relative '../Entities/customer_entity'
9
+ require_relative '../Entities/wallet'
10
+ class Customer < JSONable #BaseEntity
11
+
12
+ def initialize(h = nil)
13
+
14
+ if(h != nil)
15
+ #thisCust = Customer.new
16
+ #Customer.public_methods
17
+ h.each {
18
+ |k,v|
19
+
20
+ propNameFormatted = k.to_s + "="
21
+
22
+
23
+ if(Customer.instance_methods(false).include?(propNameFormatted.to_sym))
24
+ public_send("#{k}=",v)
25
+ end
26
+ }
27
+ end
28
+
29
+ end
30
+
31
+ def CustomerId=(customerId)
32
+ @customerId = customerId
33
+ end
34
+
35
+ def FriendlyName=(friendlyName)
36
+ @friendlyName = friendlyName
37
+ end
38
+
39
+ def Status=(status)
40
+ @status = status
41
+ end
42
+
43
+ def UniqueIdentifier=(uniqueIdentifier)
44
+ @uniqueIdentifier = uniqueIdentifier
45
+ end
46
+
47
+ def Email=(email)
48
+ @email = email
49
+ end
50
+
51
+ def Fax=(fax)
52
+ @fax = fax
53
+ end
54
+
55
+ def FirstName=(firstName)
56
+ @firstName = firstName
57
+ end
58
+
59
+ def LastName=(lastName)
60
+ @lastName = lastName
61
+ end
62
+
63
+ def Phone=(phone)
64
+ @phone = phone
65
+ end
66
+
67
+ def Website=(website)
68
+ @website = website
69
+ end
70
+
71
+ def Company=(company)
72
+ @company=company
73
+ end
74
+
75
+ def Created=(created)
76
+ @created = created
77
+ end
78
+
79
+ def Updated=(updated)
80
+ @updated = updated
81
+ end
82
+
83
+ def Username=(username)
84
+ @username = username
85
+ end
86
+
87
+ def CreditCards=(creditCards) #List<CreditCard>
88
+ @creditCards = creditCards
89
+ end
90
+
91
+ def CustomFields=(customFields) #Hash type
92
+ @customFields = customFields
93
+ end
94
+
95
+ def ResponseDetails=(responseDetails) #CustomerResponse type
96
+ @responseDetails = responseDetails
97
+ end
98
+
99
+ def Options=(options) #CustomerResponse type
100
+ @options = options
101
+ end
102
+
103
+ def BillingAddress=(billingAddress) #List<Address> type
104
+ @billingAddress = billingAddress
105
+ end
106
+
107
+ def ShippingAddress=(shippingAddress) #List<Address> type
108
+ @shippingAddress = shippingAddress
109
+ end
110
+
111
+ def ACHs=(aCHs) #List<ACH> type
112
+ @aCHs = aCHs
113
+ end
114
+
115
+ def CustomerEntities=(customerEntities) #List<CustomerEntity> type
116
+ @customerEntities = customerEntities
117
+ end
118
+
119
+ def Wallet=(wallet)
120
+ @wallet = wallet
121
+ end
122
+
123
+ def PaymentInstructions=(paymentInstructions) #List<Instruction> type
124
+ @paymentInstructions = paymentInstructions
125
+ end
126
+
127
+ #getters
128
+ def getUniqueIdentifier
129
+ return @uniqueIdentifier
130
+ end
131
+
132
+ def getCustomerId
133
+ return @customerId
134
+ end
135
+
136
+ def getFirstName
137
+ return @firstName
138
+ end
139
+
140
+ def getLastName
141
+ return @lastName
142
+ end
143
+
144
+ def getUsername
145
+ return @username
146
+ end
147
+
148
+ def getCompany
149
+ return @company
150
+ end
151
+
152
+ def getWebsite
153
+ return @website
154
+ end
155
+
156
+ def getPhone
157
+ return @phone
158
+ end
159
+
160
+ def getCustomFields
161
+ return @customFields
162
+ end
163
+
164
+ def getCustomerEntities
165
+ return @customerEntities
166
+ end
167
+
168
+ def getCreditCards
169
+ return @creditCards
170
+ end
171
+
172
+ def getBillingAddress
173
+ return @billingAddress
174
+ end
175
+
176
+ def getShippingAddress
177
+ return @shippingAddress
178
+ end
179
+
180
+ def getPaymentInstructions
181
+ return @paymentInstructions
182
+ end
183
+
184
+ def getACHs
185
+ return @aCHs
186
+ end
187
+
188
+ def getWallet
189
+ return @wallet
190
+ end
191
+
192
+ def getResponseDetails
193
+ return @responseDetails
194
+ end
195
+
196
+ #private String UniqueIdentifier;
197
+ #private String Email;
198
+ #private String Fax;
199
+ #private String FirstName;
200
+ #private String LastName;
201
+ #private String Phone;
202
+ #private String Website;
203
+ #private String Company;#
204
+ #private String Created;
205
+ #private String Updated;
206
+ #private List<CreditCard> CreditCards;
207
+ #private HashMap CustomFields;
208
+ #private CustomerResponse ResponseDetails;
209
+ #private CustomerResponse Options;
210
+ #private List<Address> BillingAddress;
211
+ #private List<Address> ShippingAddress;
212
+ #private List<ACH> ACHs;
213
+ #private List<CustomerEntity> CustomerEntities;
214
+ #private Wallet Wallet;
215
+ #private List<Instruction> PaymentInstructions;
216
+ #private String Username;#
217
+
218
+ end