SVClient 1.0.2.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.
@@ -0,0 +1,82 @@
1
+ #
2
+ # © 2011 QwikCilver Solutions Private Limited, All Rights Reserved.
3
+ #
4
+ # @author Nityananda
5
+ #
6
+ #= Overview
7
+ # Class that contains the different Status Codes.
8
+ #
9
+
10
+ class SVStatus
11
+ public
12
+ # SUCCESS - Return value that indicates SUCCESS
13
+ SUCCESS = 0
14
+
15
+ HTTP_OK = 200
16
+
17
+ # TOTALS_MATCH_BATCH_CLOSED - Batch Closed/Settlement Done. Totals at the Client end and QwikCilver Server end match.
18
+ TOTALS_MATCH_BATCH_CLOSED = 0
19
+
20
+ # TOTALS_MISMATCH_BATCH_CLOSED - Batch Closed/Settlement Done. Totals at the Client End and QwikCilver Server end do not match.
21
+ TOTALS_MISMATCH_BATCH_CLOSED = 99
22
+
23
+ # UNKNOWN_ERROR - Unknown Error (Generic Error code).
24
+ UNKNOWN_ERROR = 801
25
+
26
+ # INVALID_PARAM - Invalid Parameters, Usually thrown if there are any invalid or type mismatch parameters found.
27
+ INVALID_PARAM = 802
28
+
29
+ # NOT_INITIALIZED_ERROR - If a factory method is called without initializing the SV Client library.
30
+ NOT_INITIALIZED_ERROR = 803
31
+
32
+ # SERVICE_UNAVAILABLE_ERROR - If server returns a bad response or if the server is down.
33
+ SERVICE_UNAVAILABLE_ERROR = 804
34
+
35
+ # OPERATION_FAILED_ERROR - Describes if the requested operation was failed due to various reasons such as server error, network down time etc.,
36
+ OPERATION_FAILED_ERROR = 805
37
+
38
+ # CONNECTION_TIMEOUT_ERROR - Thrown if the connection is timed out for the transaction's response.
39
+ CONNECTION_TIMEOUT_ERROR = 806
40
+
41
+ # REQUEST_SEND_ERROR - Unable to send the request to the server.
42
+ REQUEST_SEND_ERROR = 807
43
+
44
+ # UNSUPPORTED_TYPE_ERROR - The requested interface or the POSType is currently not supported.
45
+ UNSUPPORTED_TYPE_ERROR = 808
46
+
47
+ # MISSING_MANDATORY_ATTRIBUTES - One or more of the required attributes missing.
48
+ MISSING_MANDATORY_ATTRIBUTES = 809
49
+
50
+ # UNSUPPORTED_POS_TYPE - The requested POSType is currently not supported by the client.
51
+ UNSUPPORTED_POS_TYPE = 810
52
+
53
+ # INVALID_VALUE - Invalid value.
54
+ INVALID_VALUE = -1
55
+
56
+ private
57
+ ERROR_MESSAGES = {
58
+ SVStatus::UNKNOWN_ERROR => "Encountered Error(UNKNOWN) while performing this operation",
59
+ SVStatus::INVALID_PARAM => "Invalid Parameter",
60
+ SVStatus::NOT_INITIALIZED_ERROR => "SVClient Library is Not Initialized",
61
+ SVStatus::SERVICE_UNAVAILABLE_ERROR => "Service Unavailable",
62
+ SVStatus::OPERATION_FAILED_ERROR => "Operation Failed. Did not receive any response",
63
+ SVStatus::CONNECTION_TIMEOUT_ERROR => "The Connection for this operation timed out",
64
+ SVStatus::REQUEST_SEND_ERROR => "Unable to send the request data to the Server",
65
+ SVStatus::UNSUPPORTED_TYPE_ERROR => "This API currently does not support the requested interface type",
66
+ SVStatus::MISSING_MANDATORY_ATTRIBUTES => "One or More of the Mandatory attributes does not have a valid value",
67
+ SVStatus::UNSUPPORTED_POS_TYPE => "This API currently does not support the requested POSType",
68
+ SVStatus::INVALID_VALUE => "Invalid Code"
69
+ }
70
+
71
+ public
72
+ # Use this function to get the proper error message for the respective error code.
73
+ def self.getmessage(code)
74
+ return nil if code == nil
75
+ return SVStatus::ERROR_MESSAGES[INVALID_VALUE] if ERROR_MESSAGES[code] == nil
76
+ return SVStatus::ERROR_MESSAGES[code]
77
+ end
78
+
79
+ def self.gethttpmessage(httpresponse)
80
+ return "HTTP Error [ #{httpresponse}]"
81
+ end
82
+ end
@@ -0,0 +1,142 @@
1
+ #
2
+ # © 2011 QwikCilver Solutions Private Limited, All Rights Reserved.
3
+ #
4
+ #
5
+ # Description of SVTags
6
+ # @author Nityananda
7
+ #
8
+ #= Overview
9
+ # Description of SVTags
10
+ #
11
+
12
+ class SVTags
13
+ CARD_NUMBER = "CardNumber"
14
+ CARD_PROGRAM_GROUP_NAME = "CardProgramGroupName"
15
+ CARD_PIN = "CardPIN"
16
+ ADDON_CARD_NUMBER = "AddonCardNumber"
17
+ TRANSACTION_TYPE_ID = "TransactionTypeID"
18
+ AMOUNT = "Amount"
19
+ DATE_AT_CLIENT = "DateAtClient"
20
+ TRANSACTION_ID = "TransactionId"
21
+ DATE_AT_SERVER = "DateAtServer"
22
+ EXPIRY = "Expiry"
23
+ POS_ENTRY_MODE = "POSEntryMode"
24
+ POS_TYPE_ID = "POSTypeId"
25
+ ACQUIRER_ID = "AcquirerId"
26
+ TRACK_DATA = "TrackData"
27
+ ADDON_CARD_TRACK_DATA = "AddonCardTrackData"
28
+ INVOICE_NUMBER = "InvoiceNumber"
29
+ APPROVAL_CODE = "ApprovalCode"
30
+ RESPONSE_CODE = "ResponseCode"
31
+ TERMINAL_ID = "TerminalId"
32
+ ORGANIZATION_NAME = "OrgName"
33
+ MERCHANT_NAME = "MerchantName"
34
+ MERCHANT_OUTLET_NAME = "MerchantOutletName"
35
+ RESPONSE_MESSAGE = "ResponseMessage"
36
+ OUTLET_ADDRESS_1 = "OutletAddress1"
37
+ OUTLET_ADDRESS_2 = "OutletAddress2"
38
+ OUTLET_CITY = "OutletCity"
39
+ OUTLET_STATE = "OutletState"
40
+ OUTLET_PIN_CODE = "OutletPinCode"
41
+ OUTLET_TELEPHONE = "OutletTelephone"
42
+ USER_ID = "UserId"
43
+ PASSWORD = "Password"
44
+ CURRENT_BATCH_NUMBER = "CurrentBatchNumber"
45
+ ACTIVATION_COUNT = "ActivationCount"
46
+ ACTIVATION_AMOUNT = "ActivationAmount"
47
+ REDEEM_COUNT = "RedemptionCount"
48
+ REDEEM_AMOUNT = "RedemptionAmount"
49
+ RELOAD_COUNT = "ReloadCount"
50
+ RELOAD_AMOUNT = "ReloadAmount"
51
+ NEW_BATCH_NUMBER = "NewBatchNumber"
52
+ INVOICE_NUMBER_MANDATORY = "InvoiceNumberMandatory"
53
+ MESSAGE_AUTHENTICATION_CODE = "MessageAuthenticationCode"
54
+ MASK_CARD_NUMBER = "MaskCardNumber"
55
+ PRINT_MERCHANT_COPY = "PrintMerchantCopy"
56
+ CORPORATE_NAME = "CorporateName"
57
+ CARD_TYPE = "CardType"
58
+ RECEIPT_FOOTER_LINE_1 = "ReceiptFooterLine1"
59
+ RECEIPT_FOOTER_LINE_2 = "ReceiptFooterLine2"
60
+ RECEIPT_FOOTER_LINE_3 = "ReceiptFooterLine3"
61
+ RECEIPT_FOOTER_LINE_4 = "ReceiptFooterLine4"
62
+ ORIGINAL_INVOICE_NUMBER = "OriginalInvoiceNumber"
63
+ ORIGINAL_TRANSACTION_ID = "OriginalTransactionId"
64
+ ORIGINAL_BATCH_NUMBER = "OriginalBatchNumber"
65
+ ORIGINAL_AMOUNT = "Amount"
66
+ ORIGINAL_APPROVAL_CODE = "OriginalApprovalCode"
67
+ CANCEL_LOAD_COUNT = "CancelLoadCount"
68
+ CANCEL_LOAD_AMOUNT = "CancelLoadAmount"
69
+ CANCEL_REDEEM_COUNT = "CancelRedeemCount"
70
+ CANCEL_REDEEM_AMOUNT = "CancelRedeemAmount"
71
+ POS_NAME = "POSName"
72
+ INTEGER_AMOUNTS = "IntegerAmounts"
73
+ NUMERIC_USER_PASSWORD = "NumericUserPwd"
74
+ TERMINAL_APP_VERSION = "TermAppVersion"
75
+ CANCEL_ACTIVATION_COUNT = "CancelActivationCount"
76
+ CANCEL_ACTIVATION_AMOUNT = "CancelActivationAmount"
77
+ FIRST_NAME = "Firstname"
78
+ LAST_NAME = "Lastname"
79
+ PHONE_NUMBER = "Phone"
80
+ TRANSFER_CARD_NUMBER = "TransferCardNumber"
81
+ TRANSFER_CARD_BALANCE = "TransferCardBalance"
82
+ TRANSFER_CARD_EXPIRY = "TransferCardExpiry"
83
+ FORWARDING_ENTITY_ID = "ForwardingEntityId"
84
+ FORWARDING_ENTITY_PASSWORD = "ForwardingEntityPwd"
85
+ DEACTIVATION_COUNT = "DeactivationCount"
86
+ DEACTIVATION_AMOUNT = "DeactivationAmount"
87
+ NOTES = "Notes"
88
+ ADJUSTMENT_AMOUNT = "AdjustmentAmount"
89
+ CURRENCY_CONVERSION_RATE = "CurrencyConversionRate"
90
+ CARD_CURRENCY_SYMBOL = "CardCurrencySymbol"
91
+ CURRENCY_CONVERTED_AMOUNT = "CurrencyConvertedAmount"
92
+ EMPLOYEE_ID = "EmployeeId"
93
+ CARD_HOLDER_NAME = "CardHolderName"
94
+ PREV_BALANCE = "PreviousBalance"
95
+ SALUTATION = "Salutation"
96
+ ADDRESS1 = "Address1"
97
+ ADDRESS2 = "Address2"
98
+ AREA = "Area"
99
+ CITY = "City"
100
+ STATE = "State"
101
+ COUNTRY = "Country"
102
+ PIN_CODE = "PinCode"
103
+ PHONE_ALTERNATE = "PhoneAlternate"
104
+ EMAIL = "Email"
105
+ DOB = "DOB"
106
+ ANNIVERSARY = "Anniversary"
107
+ GENDER = "Gender"
108
+ MARITAL_STATUS = "MaritalStatus"
109
+ XACTION_AMOUNT = "XactionAmount"
110
+ CARD_PROGRAM_ID = "CardProgramID"
111
+ ENROLLED_STORE = "EnrolledStore"
112
+ ENROLLED_SINCE = "EnrolledSince"
113
+ CARD_STATUS = "CardStatus"
114
+ OUTSTANDING_BALANCE = "OutstandingBalance"
115
+ CARD_EXPIRY_DATE = "CardExpiryDate"
116
+ CUSTOMER_VALIDATION_FOR_REDEMPTION = "CustomerValidationForRedemption"
117
+ MEETS_MINIMUM_REDEMPTION_CRITERIA = "MeetsMinimumRedemptionCriteria"
118
+ READY_FOR_REDEMPTION = "ReadyForRedemption"
119
+ IS_PROXY = "IsProxy"
120
+ IS_OFFLINE = "IsOffline"
121
+ ACTUAL_MERCHANT_OUTLET_NAME = "ActualMerchantOutletName"
122
+ ADDITIONAL_TXN_REF_1 = "AdditionalTxnRef1"
123
+ CARD_BALANCE = "Amount"
124
+ SETTLEMENT_DATE = "SettlementDate"
125
+ EMBOSSING_RECORD = "EmbossingFileRecord"
126
+ IIN = "IIN"
127
+ CULTURE_NAME = "CultureName"
128
+ CURRENCY_SYMBOL = "CurrencySymbol"
129
+ CURRENCY_POSITION = "CurrencyPosition"
130
+ CURRENCY_DECIMAL_DIGITS = "CurrencyDecimalDigits"
131
+ DISPLAY_UNIT_FOR_POINTS = "DisplayUnitForPoints"
132
+ FROM_CARD_NUMBER = "FromCardNumber"
133
+ FROM_CARD_PIN = "FromCardPin"
134
+ TO_CARD_NUMBER = "ToCardNumber"
135
+ BILL_AMOUNT = "BillAmount"
136
+ PROMOTIONAL_VALUE = "PromotionalValue"
137
+ TRANSACTION_AMOUNT_CONVERTED_VALUE = "XactionAmountConvertedValue"
138
+ SV_TYPE = "SVType"
139
+ SV_CONVERTED_AMOUNT = "SVConvertedAmount"
140
+ EARNED_VALUE = "EarnedValue"
141
+ RECENT_TRANSACTIONS = "RecentTransactions"
142
+ end
@@ -0,0 +1,16 @@
1
+ #
2
+ # © 2011 QwikCilver Solutions Private Limited, All Rights Reserved.
3
+ #
4
+ #
5
+ # Description of SVTags
6
+ # @author Nityananda
7
+ #
8
+ #= Overview
9
+ # Supported SVTypes
10
+ #
11
+
12
+ class SVType
13
+ SWITCH_LOYALTY = 1
14
+ WEBPOS_GIFTCARD = 2
15
+ WEBPOS_LOYALTY = 3
16
+ end
@@ -0,0 +1,81 @@
1
+ #
2
+ # © 2011 QwikCilver Solutions Private Limited, All Rights Reserved.
3
+ #
4
+ # @author Nityananda
5
+ #
6
+ #= Overview
7
+ # Class that contains utility methods.
8
+ #
9
+
10
+ require 'SVClient/SVGiftRecentTransactions'
11
+
12
+ class SVUtils
13
+ QC_DATE_TIME_FORMAT = '%d%m%Y%H%M%S'
14
+ QC_DATE_FORMAT = '%d%m%Y'
15
+
16
+ def self.isnullorempty (value)
17
+ return true if (value == nil)
18
+ value = value.to_s
19
+ return ((value.strip.length) <= 0) ? true : false
20
+ end
21
+
22
+ require 'date'
23
+
24
+ def self.getdate (value, format = nil)
25
+ return nil if isnullorempty(value)
26
+ return nil if isnullorempty(format)
27
+ begin
28
+ return DateTime.strptime(value, format)
29
+ rescue
30
+ return nil
31
+ end
32
+ end
33
+
34
+ def self.getcurrentdate
35
+ d = DateTime.now
36
+ return d.strftime(SVUtils::QC_DATE_TIME_FORMAT)
37
+ end
38
+
39
+ # Function to format the currency to standard notation which was received from server's locale currency format.
40
+ def self.getfloat(value)
41
+ retval = -1
42
+ value = (value == nil) ? "" : value.to_s.strip()
43
+
44
+ return -1 if (value.length <= 0)
45
+
46
+ iindex = value.index(/[.]/, 0)
47
+ if (iindex == nil)
48
+ return value.gsub(/[^0-9]/, "").to_f
49
+ else
50
+ decimalpart = value[iindex + 1, value.length]
51
+ wholepart = value[0, iindex]
52
+ ilen = decimalpart.length
53
+ if( (ilen == 1) || (ilen == 2) || (ilen == 3) )
54
+ fullnumber = wholepart.gsub(/[^0-9]/, "")
55
+ fullnumber = fullnumber + "." + decimalpart
56
+ else
57
+ fullnumber = value.gsub(/[^0-9]/, "")
58
+ end
59
+ end
60
+
61
+ begin
62
+ retval = fullnumber.to_f
63
+ rescue
64
+ retval = -1
65
+ end
66
+ return retval
67
+ end
68
+
69
+ def self.parsegiftrecenttransactions(value)
70
+ arr = Array.new
71
+ value[0].split(/[{]/n).each do |row|
72
+ next if (row == nil || row == "")
73
+ grt = SVGiftRecentTransactions.new
74
+ row.chomp('}').split(/[|]/).each do |keypaircollection|
75
+ grt.setvalue(keypaircollection)
76
+ end
77
+ arr << grt
78
+ end
79
+ return arr
80
+ end
81
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: SVClient
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Nitya
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-11 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: SVClient API Library for QwikCilver integration
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/SVClient/GCWebPos.rb
20
+ - lib/SVClient/SVBalanceEnquiry.rb
21
+ - lib/SVClient/SVCancelRedeem.rb
22
+ - lib/SVClient/SVClient.rb
23
+ - lib/SVClient/SVGiftCardCodes.rb
24
+ - lib/SVClient/SVGiftRecentTransactions.rb
25
+ - lib/SVClient/SVParamDownload.rb
26
+ - lib/SVClient/SVProperties.rb
27
+ - lib/SVClient/SVQcsData.rb
28
+ - lib/SVClient/SVRecentTransactions.rb
29
+ - lib/SVClient/SVRedeem.rb
30
+ - lib/SVClient/SVRequest.rb
31
+ - lib/SVClient/SVResponse.rb
32
+ - lib/SVClient/SVStatus.rb
33
+ - lib/SVClient/SVTags.rb
34
+ - lib/SVClient/SVType.rb
35
+ - lib/SVClient/SVUtils.rb
36
+ homepage:
37
+ licenses: []
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.0.2
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: SVClient API Library for QwikCilver integration
59
+ test_files: []