cybersource_rest_client 0.0.37 → 0.0.38

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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/lib/AuthenticationSDK/authentication/http/GetSignatureParameter.rb +13 -6
  3. data/lib/AuthenticationSDK/authentication/http/HttpSignatureHeader.rb +13 -5
  4. data/lib/AuthenticationSDK/authentication/jwt/JwtToken.rb +26 -11
  5. data/lib/AuthenticationSDK/authentication/oauth/OAuthToken.rb +11 -5
  6. data/lib/AuthenticationSDK/authentication/payloadDigest/digest.rb +2 -2
  7. data/lib/AuthenticationSDK/core/Authorization.rb +28 -20
  8. data/lib/AuthenticationSDK/core/MerchantConfig.rb +72 -78
  9. data/lib/AuthenticationSDK/logging/log_configuration.rb +71 -0
  10. data/lib/AuthenticationSDK/logging/log_factory.rb +65 -0
  11. data/lib/AuthenticationSDK/logging/sensitive_logging.rb +101 -0
  12. data/lib/AuthenticationSDK/util/Cache.rb +1 -1
  13. data/lib/AuthenticationSDK/util/Constants.rb +25 -17
  14. data/lib/AuthenticationSDK/util/ExceptionHandler.rb +26 -0
  15. data/lib/AuthenticationSDK/util/PropertiesUtil.rb +2 -2
  16. data/lib/cybersource_rest_client/api/asymmetric_key_management_api.rb +46 -46
  17. data/lib/cybersource_rest_client/api/capture_api.rb +16 -16
  18. data/lib/cybersource_rest_client/api/chargeback_details_api.rb +16 -16
  19. data/lib/cybersource_rest_client/api/chargeback_summaries_api.rb +16 -16
  20. data/lib/cybersource_rest_client/api/conversion_details_api.rb +16 -16
  21. data/lib/cybersource_rest_client/api/credit_api.rb +16 -16
  22. data/lib/cybersource_rest_client/api/customer_api.rb +61 -61
  23. data/lib/cybersource_rest_client/api/customer_payment_instrument_api.rb +76 -76
  24. data/lib/cybersource_rest_client/api/customer_shipping_address_api.rb +76 -76
  25. data/lib/cybersource_rest_client/api/decision_manager_api.rb +46 -46
  26. data/lib/cybersource_rest_client/api/download_dtd_api.rb +16 -16
  27. data/lib/cybersource_rest_client/api/download_xsd_api.rb +16 -16
  28. data/lib/cybersource_rest_client/api/instrument_identifier_api.rb +91 -91
  29. data/lib/cybersource_rest_client/api/interchange_clearing_level_details_api.rb +16 -16
  30. data/lib/cybersource_rest_client/api/invoice_settings_api.rb +31 -31
  31. data/lib/cybersource_rest_client/api/invoices_api.rb +91 -91
  32. data/lib/cybersource_rest_client/api/key_generation_api.rb +16 -16
  33. data/lib/cybersource_rest_client/api/net_fundings_api.rb +16 -16
  34. data/lib/cybersource_rest_client/api/notification_of_changes_api.rb +16 -16
  35. data/lib/cybersource_rest_client/api/payer_authentication_api.rb +46 -46
  36. data/lib/cybersource_rest_client/api/payment_batch_summaries_api.rb +16 -16
  37. data/lib/cybersource_rest_client/api/payment_instrument_api.rb +61 -61
  38. data/lib/cybersource_rest_client/api/payments_api.rb +31 -31
  39. data/lib/cybersource_rest_client/api/payouts_api.rb +16 -16
  40. data/lib/cybersource_rest_client/api/purchase_and_refund_details_api.rb +16 -16
  41. data/lib/cybersource_rest_client/api/refund_api.rb +31 -31
  42. data/lib/cybersource_rest_client/api/report_definitions_api.rb +31 -31
  43. data/lib/cybersource_rest_client/api/report_downloads_api.rb +16 -16
  44. data/lib/cybersource_rest_client/api/report_subscriptions_api.rb +76 -76
  45. data/lib/cybersource_rest_client/api/reports_api.rb +46 -46
  46. data/lib/cybersource_rest_client/api/retrieval_details_api.rb +16 -16
  47. data/lib/cybersource_rest_client/api/retrieval_summaries_api.rb +16 -16
  48. data/lib/cybersource_rest_client/api/reversal_api.rb +31 -31
  49. data/lib/cybersource_rest_client/api/search_transactions_api.rb +31 -31
  50. data/lib/cybersource_rest_client/api/secure_file_share_api.rb +31 -31
  51. data/lib/cybersource_rest_client/api/symmetric_key_management_api.rb +46 -46
  52. data/lib/cybersource_rest_client/api/taxes_api.rb +31 -31
  53. data/lib/cybersource_rest_client/api/tokenization_api.rb +16 -16
  54. data/lib/cybersource_rest_client/api/transaction_batches_api.rb +46 -46
  55. data/lib/cybersource_rest_client/api/transaction_details_api.rb +16 -16
  56. data/lib/cybersource_rest_client/api/user_management_api.rb +16 -16
  57. data/lib/cybersource_rest_client/api/user_management_search_api.rb +16 -16
  58. data/lib/cybersource_rest_client/api/verification_api.rb +31 -31
  59. data/lib/cybersource_rest_client/api/void_api.rb +76 -76
  60. data/lib/cybersource_rest_client/api_client.rb +7 -8
  61. data/lib/cybersource_rest_client/models/create_adhoc_report_request.rb +2 -5
  62. data/lib/cybersource_rest_client/models/create_payment_request.rb +19 -1
  63. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response_order_information_amount_details.rb +20 -4
  64. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information.rb +36 -4
  65. data/lib/cybersource_rest_client/models/ptsv2payments_buyer_information.rb +33 -1
  66. data/lib/cybersource_rest_client/models/ptsv2payments_client_reference_information.rb +17 -1
  67. data/lib/cybersource_rest_client/models/ptsv2payments_device_information.rb +17 -1
  68. data/lib/cybersource_rest_client/models/ptsv2payments_invoice_details.rb +191 -0
  69. data/lib/cybersource_rest_client/models/ptsv2payments_merchant_information.rb +49 -1
  70. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details.rb +17 -1
  71. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_invoice_details.rb +20 -4
  72. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_ship_to.rb +33 -1
  73. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +13 -4
  74. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank.rb +14 -4
  75. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_e_wallet.rb +190 -0
  76. data/lib/cybersource_rest_client/models/ptsv2payments_processor_information.rb +191 -0
  77. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information.rb +14 -5
  78. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information_bank.rb +215 -0
  79. data/lib/cybersource_rest_client/models/reportingv3reports_report_filters.rb +218 -0
  80. data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_tokenized_card.rb +17 -1
  81. data/lib/cybersource_rest_client/models/riskv1authentications_payment_information_tokenized_card.rb +17 -1
  82. data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_tokenized_card.rb +17 -1
  83. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_installment_information.rb +14 -4
  84. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_order_information_amount_details.rb +13 -4
  85. data/lib/cybersource_rest_client/utilities/flex/token_verification.rb +4 -4
  86. data/lib/cybersource_rest_client.rb +9 -2
  87. metadata +11 -4
  88. data/lib/AuthenticationSDK/core/Logger.rb +0 -26
  89. data/lib/AuthenticationSDK/util/ApiException.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a38c7f8faa170530bb47d8e2d63de7114dc7b14cc9dc55d52bf29a864dffda2e
4
- data.tar.gz: e95ecbe45b44340de39422f47e232a9582351d802bed44e16732f5471c4ff1d6
3
+ metadata.gz: 1886b4add8b84bfbac736fe78a758ee265e3152d7101c178f00789b30ab9bfb1
4
+ data.tar.gz: 11ee54eae5380c12c771557a7e3f601692f2a290552d9e3ca2f826e08ec49099
5
5
  SHA512:
6
- metadata.gz: 70e9ee0cb82e909449bb2eb7a9dd4615bc7fafa0559334e075bc546f15e6b7d444813dd46b9965b987f449ebd412a00292b4265da415776b3cac400ac8a9a3a2
7
- data.tar.gz: b315d77c25ae81a142355d352d5779e0929d77c1857360177b62a3180c95d55c9a4104c7ec80155192789b2a33da31741eb4da3c595748e897f6bbbc0219f53e
6
+ metadata.gz: a1a9802d9b4e6235caf2ce686559421af96aa400c9caa799c830b0cdcb6df9f5e8e4fe549ec70c998a4e9144fefbd0234e222a143bdf102087a41aef97852ff3
7
+ data.tar.gz: 1ac08f343b72208a7294127ffb39817af640241ed8a7f135fa2e9bdf95232160a58e3cccd359b20107a41b0b5e23e8fb6605938a59b0cbc40b7e6835ef683a18
@@ -1,5 +1,6 @@
1
1
  require_relative '../../util/Constants.rb'
2
2
  require_relative '.././payloadDigest/digest.rb'
3
+ require_relative '../../logging/log_factory.rb'
3
4
  require 'openssl'
4
5
  # This function returns value for paramter Signature which is then passed to Signature header
5
6
  # paramter 'Signature' is calucated based on below key values and then signed with SECRET KEY -
@@ -13,12 +14,17 @@ require 'openssl'
13
14
  # v-c-merchant-id: set value to Cybersource Merchant ID
14
15
  # This ID can be found on EBC portal*/
15
16
  class SignatureParameter
16
- def generateSignatureParameter(merchantconfig_obj, gmtdatetime, log_obj)
17
+ @log_obj
18
+ def generateSignatureParameter(merchantconfig_obj, gmtdatetime)
19
+ @log_obj = Log.new merchantconfig_obj.log_config, "GetSignatureParameter"
20
+
17
21
  request_type = merchantconfig_obj.requestType.upcase
18
22
  merchantSecretKey = merchantconfig_obj.merchantSecretKey
23
+
19
24
  signatureString = Constants::HOST + ': ' + merchantconfig_obj.requestHost
20
25
  signatureString << "\n"+ Constants::DATE + ': ' + gmtdatetime
21
26
  signatureString << "\n(request-target): "
27
+
22
28
  if request_type == Constants::GET_REQUEST_TYPE || request_type == Constants::DELETE_REQUEST_TYPE
23
29
  targetUrl=gettargetUrlForGetDelete(request_type,merchantconfig_obj)
24
30
  signatureString << targetUrl + "\n"
@@ -26,7 +32,7 @@ require 'openssl'
26
32
  targetUrl=gettargetUrlForPutPost(request_type,merchantconfig_obj)
27
33
  signatureString << targetUrl + "\n"
28
34
  payload = merchantconfig_obj.requestJsonData
29
- digest = DigestGeneration.new.generateDigest(payload, log_obj)
35
+ digest = DigestGeneration.new.generateDigest(payload)
30
36
  digest_payload = Constants::SHA256 + digest
31
37
  signatureString << Constants::DIGEST + ': ' + digest_payload + "\n"
32
38
  end
@@ -40,10 +46,11 @@ require 'openssl'
40
46
  base64EncodedSignature = Base64.strict_encode64(OpenSSL::HMAC.digest('sha256', decodedKey, encodedSignatureString))
41
47
  return base64EncodedSignature
42
48
  rescue StandardError => err
43
- log_obj.logger.error(err.message)
44
- log_obj.logger.error(err.backtrace)
45
- puts 'Check log for more details.'
46
- exit!
49
+ @log_obj.logger.error(err.message)
50
+ @log_obj.logger.error(err.backtrace)
51
+ raise err
52
+ # puts 'Check log for more details.'
53
+ # exit!
47
54
  end
48
55
  def gettargetUrlForGetDelete(request_type, merchantconfig_obj)
49
56
  targetUrlForGetDelete = ''
@@ -1,9 +1,10 @@
1
1
  require 'base64'
2
2
  require_relative '../../core/ITokenGeneration.rb'
3
3
  require_relative '../../util/Constants.rb'
4
- require_relative '../../util/ApiException.rb'
5
4
  require_relative '.././payloadDigest/digest.rb'
6
5
  require_relative '.././http/GetSignatureParameter.rb'
6
+ require_relative '../../logging/log_factory.rb'
7
+ require_relative '../../util/ExceptionHandler.rb'
7
8
  public
8
9
  # SignatureHeader return SignatureHeader Value that contains following paramters
9
10
  # * keyid -- Merchant ID obtained from EBC portal
@@ -15,23 +16,30 @@ public
15
16
  # * signature -- Signature header has paramter called signature
16
17
  # Paramter 'Signature' must contain all the paramters mentioned in header above in given order
17
18
  class GenerateHttpSignature
19
+ @log_obj
18
20
  # Generates Signature based on the requestType
19
- def getToken(merchantconfig_obj, gmtdatetime, log_obj)
21
+ def getToken(merchantconfig_obj, gmtdatetime)
22
+ @log_obj = Log.new merchantconfig_obj.log_config, "GenerateHttpSignature"
23
+
20
24
  request_type = merchantconfig_obj.requestType.upcase
21
25
  signatureHeaderValue =''
22
26
  signatureHeaderValue << Constants::KEY_ID + merchantconfig_obj.merchantKeyId + "\""
27
+
23
28
  # Algorithm should be always HmacSHA256 for http signature
24
29
  signatureHeaderValue << ', ' + Constants::ALGORITHM + Constants::SIGNATURE_ALGORITHM + "\""
30
+
25
31
  # Headers - list is choosen based on HTTP method
26
32
  signatureheader=getsignatureHeader(request_type)
27
33
  signatureHeaderValue << ', ' + Constants::HEADERS_PARAM + signatureheader + "\""
34
+
28
35
  # Get Value for parameter 'Signature' to be passed to Signature Header
29
- signature_value = SignatureParameter.new.generateSignatureParameter(merchantconfig_obj, gmtdatetime, log_obj)
36
+ signature_value = SignatureParameter.new.generateSignatureParameter(merchantconfig_obj, gmtdatetime)
30
37
  signatureHeaderValue << ', ' + Constants::SIGNATURE_PARAM + signature_value + "\""
31
38
  return signatureHeaderValue
32
39
  rescue StandardError => err
33
- ApiException.new.apiexception(err,log_obj)
34
- exit!
40
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
41
+ raise err
42
+ # exit!
35
43
  end
36
44
  def getsignatureHeader(request_type)
37
45
  headers = ''
@@ -5,56 +5,71 @@ require 'json'
5
5
  require 'active_support'
6
6
  require_relative '../../core/ITokenGeneration.rb'
7
7
  require_relative '../../util/Constants.rb'
8
- require_relative '../../util/ApiException.rb'
8
+ require_relative '../../util/ExceptionHandler.rb'
9
9
  require_relative '../../util/Cache.rb'
10
10
  require_relative '../../authentication/payloadDigest/digest.rb'
11
+ require_relative '../../logging/log_factory.rb'
11
12
  public
12
- #JWT Token-generated based on the Request type
13
13
  class GenerateJwtToken
14
- def getToken(merchantconfig_obj,gmtDatetime,log_obj)
14
+ @log_obj
15
+
16
+ #JWT Token-generated based on the Request type
17
+ def getToken(merchantconfig_obj,gmtDatetime)
18
+ @log_obj = Log.new merchantconfig_obj.log_config, "JwtToken"
19
+
15
20
  jwtBody = ''
16
21
  request_type = merchantconfig_obj.requestType.upcase
17
22
  filePath = merchantconfig_obj.keysDirectory + '/' + merchantconfig_obj.keyFilename + '.p12'
23
+
18
24
  if (!File.exist?(filePath))
19
25
  raise Constants::ERROR_PREFIX + Constants::FILE_NOT_FOUND + File.expand_path(filePath)
20
26
  end
27
+
21
28
  p12File = File.binread(filePath)
22
- jwtBody=getJwtBody(request_type, gmtDatetime, merchantconfig_obj, log_obj)
29
+ jwtBody=getJwtBody(request_type, gmtDatetime, merchantconfig_obj)
23
30
  claimSet = JSON.parse(jwtBody)
24
31
  p12FilePath = OpenSSL::PKCS12.new(p12File, merchantconfig_obj.keyPass)
32
+
25
33
  # Generating certificate.
26
34
  cacheObj = ActiveSupport::Cache::MemoryStore.new
27
35
  x5Cert = Cache.new.fetchCachedCertificate(filePath, p12File, merchantconfig_obj.keyPass, cacheObj)
36
+
28
37
  # Generating Public key.
29
38
  publicKey = OpenSSL::PKey::RSA.new(p12FilePath.key.public_key)
39
+
30
40
  #Generating Private Key
31
41
  privateKey = OpenSSL::PKey::RSA.new(p12FilePath.key)
42
+
32
43
  # JWT token-Generates using RS256 algorithm only
33
44
  x5clist = [x5Cert]
34
45
  customHeaders = {}
35
46
  customHeaders['v-c-merchant-id'] = merchantconfig_obj.keyAlias
36
47
  customHeaders['x5c'] = x5clist
48
+
37
49
  # Generating JWT token
38
50
  token = JWT.encode(claimSet, privateKey, 'RS256', customHeaders)
39
51
  return token
40
52
  rescue StandardError => err
41
53
  if err.message.include? 'PKCS12_parse: mac verify failure'
42
- ApiException.new.customerror(Constants::ERROR_PREFIX + Constants::INCORRECT_KEY_PASS,log_obj)
43
- exit!
54
+ @log_obj.logger.error(ExceptionHandler.new.new_custom_error Constants::ERROR_PREFIX + Constants::INCORRECT_KEY_PASS)
55
+ # exit!
44
56
  else
45
- ApiException.new.apiexception(err,log_obj)
46
- exit!
57
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
58
+ # exit!
47
59
  end
60
+ raise err
48
61
  end
49
- def getJwtBody(request_type, gmtDatetime, merchantconfig_obj,log_obj)
62
+
63
+ def getJwtBody(request_type, gmtDatetime, merchantconfig_obj)
50
64
  if request_type == Constants::POST_REQUEST_TYPE || request_type == Constants::PUT_REQUEST_TYPE || request_type == Constants::PATCH_REQUEST_TYPE
51
65
  payload = merchantconfig_obj.requestJsonData
66
+
52
67
  # Note: Digest is not passed for GET calls
53
- digest = DigestGeneration.new.generateDigest(payload, log_obj)
68
+ digest = DigestGeneration.new.generateDigest(payload)
54
69
  jwtBody = "{\n \"digest\":\"" + digest + "\", \"digestAlgorithm\":\"SHA-256\", \"iat\":\"" + gmtDatetime + "\"}"
55
70
  elsif request_type == Constants::GET_REQUEST_TYPE || request_type == Constants::DELETE_REQUEST_TYPE
56
71
  jwtBody = "{\n \"iat\":\"" + gmtDatetime + "\"\n} \n\n"
57
- else
72
+ else
58
73
  raise StandardError.new(Constants::ERROR_PREFIX + Constants::INVALID_REQUEST_TYPE_METHOD)
59
74
  end
60
75
  end
@@ -1,15 +1,21 @@
1
1
  require_relative '../../core/ITokenGeneration.rb'
2
2
  require_relative '../../util/Constants.rb'
3
- require_relative '../../util/ApiException.rb'
3
+ require_relative '../../util/ExceptionHandler.rb'
4
4
  require_relative '../../util/Cache.rb'
5
+ require_relative '../../logging/log_factory.rb'
6
+
5
7
  public
6
- #JWT Token-generated based on the Request type
7
8
  class GenerateOAuthToken
8
- def getToken(merchantconfig_obj,gmtDatetime,log_obj)
9
+ @log_obj
10
+
11
+ #JWT Token-generated based on the Request type
12
+ def getToken(merchantconfig_obj, gmtDatetime)
13
+ @log_obj = Log.new merchantconfig_obj.log_config, "OAuthToken"
9
14
  token = merchantconfig_obj.accessToken
10
15
  rescue StandardError => err
11
- ApiException.new.apiexception(err,log_obj)
12
- exit!
16
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
17
+ raise err
18
+ # exit!
13
19
  end
14
20
  implements TokenInterface
15
21
  end
@@ -1,9 +1,9 @@
1
1
  require 'digest'
2
2
  public
3
- # This method return Digest value which is SHA-256
3
+ # This method return Digest value which is SHA-256
4
4
  # hash of payload that is BASE64 encoded
5
5
  class DigestGeneration
6
- def generateDigest(payload, log_obj)
6
+ def generateDigest(payload)
7
7
  digest = Digest::SHA256.base64digest(payload)
8
8
  return digest
9
9
  end
@@ -2,26 +2,34 @@ require_relative '../authentication/http/HttpSignatureHeader.rb'
2
2
  require_relative '../authentication/jwt/JwtToken.rb'
3
3
  require_relative '../authentication/oauth/OAuthToken.rb'
4
4
  require_relative '../util/Constants.rb'
5
- require_relative '../util/ApiException.rb'
5
+ require_relative '../util/ExceptionHandler.rb'
6
+ require_relative '../logging/log_factory.rb'
6
7
  public
7
8
  # This function calls for the generation of Signature message depending on the authentication type.
8
- class Authorization
9
- def getToken(merchantconfig_obj, gmtdatetime, log_obj)
10
- authenticationType = merchantconfig_obj.authenticationType.upcase
11
- if merchantconfig_obj.requestType.to_s.empty?
12
- raise StandardError.new(Constants::ERROR_PREFIX + Constants::REQUEST_TYPE_EMPTY)
13
- end
14
- if authenticationType == Constants::AUTH_TYPE_HTTP
15
- token = GenerateHttpSignature.new.getToken(merchantconfig_obj, gmtdatetime, log_obj)
16
- elsif authenticationType == Constants::AUTH_TYPE_JWT
17
- token = GenerateJwtToken.new.getToken(merchantconfig_obj, gmtdatetime, log_obj)
18
- elsif authenticationType == Constants::AUTH_TYPE_OAUTH
19
- token = GenerateOAuthToken.new.getToken(merchantconfig_obj, gmtdatetime, log_obj)
20
- else
21
- raise StandardError.ner(Constants::ERROR_PREFIX + Constants::AUTH_ERROR)
22
- end
23
- rescue StandardError => err
24
- ApiException.new.apiexception(err,log_obj)
25
- exit!
9
+ class Authorization
10
+ @log_obj
11
+ def getToken(merchantconfig_obj, gmtdatetime)
12
+ @log_obj = Log.new merchantconfig_obj.log_config, "Authorization"
13
+
14
+ authenticationType = merchantconfig_obj.authenticationType.upcase
15
+ @log_obj.logger.info("Authentication Type: " + authenticationType)
16
+
17
+ if merchantconfig_obj.requestType.to_s.empty?
18
+ raise StandardError.new(Constants::ERROR_PREFIX + Constants::REQUEST_TYPE_EMPTY)
19
+ end
20
+
21
+ if authenticationType == Constants::AUTH_TYPE_HTTP
22
+ token = GenerateHttpSignature.new.getToken(merchantconfig_obj, gmtdatetime)
23
+ elsif authenticationType == Constants::AUTH_TYPE_JWT
24
+ token = GenerateJwtToken.new.getToken(merchantconfig_obj, gmtdatetime)
25
+ elsif authenticationType == Constants::AUTH_TYPE_OAUTH
26
+ token = GenerateOAuthToken.new.getToken(merchantconfig_obj, gmtdatetime)
27
+ else
28
+ raise StandardError.ner(Constants::ERROR_PREFIX + Constants::AUTH_ERROR)
29
+ end
30
+ rescue StandardError => err
31
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
32
+ raise err
33
+ # exit!
34
+ end
26
35
  end
27
- end
@@ -1,6 +1,8 @@
1
- require_relative './Logger.rb'
2
1
  require_relative '../util/Constants.rb'
3
- require_relative '../util/ApiException.rb'
2
+ require_relative '../util/ExceptionHandler.rb'
3
+ require_relative '../logging/log_factory.rb'
4
+ require_relative '../logging/log_configuration.rb'
5
+
4
6
  public
5
7
  # This fuction has all the merchantConfig properties getters and setters methods
6
8
  class Merchantconfig
@@ -9,9 +11,6 @@ public
9
11
  @merchantId = cybsPropertyObj['merchantID']
10
12
  @runEnvironment = cybsPropertyObj['runEnvironment']
11
13
  @authenticationType = cybsPropertyObj['authenticationType']
12
- @logDirectory = cybsPropertyObj['logDirectory']
13
- @logSize = cybsPropertyObj['logSize']
14
- @enableLog = cybsPropertyObj['enableLog']
15
14
  @proxyAddress = cybsPropertyObj['proxyAddress']
16
15
  @proxyPort = cybsPropertyObj['proxyPort']
17
16
  @getId = ''
@@ -28,7 +27,6 @@ public
28
27
  @keyFilename = cybsPropertyObj['keyFilename']
29
28
  @useMetaKey = cybsPropertyObj['useMetaKey']
30
29
  @portfolioID = cybsPropertyObj['portfolioID']
31
- @logFilename = cybsPropertyObj['logFilename']
32
30
  @solutionId = cybsPropertyObj['solutionId']
33
31
  # MutualAuth & OAuth Parameters
34
32
  @enableClientCert = cybsPropertyObj['enableClientCert']
@@ -39,86 +37,75 @@ public
39
37
  @clientId = cybsPropertyObj['clientId']
40
38
  @clientSecret = cybsPropertyObj['clientSecret']
41
39
  @accessToken = cybsPropertyObj['accessToken']
42
- @refreshToken = cybsPropertyObj['refreshToken']
40
+ @refreshToken = cybsPropertyObj['refreshToken']
41
+ # LogConfiguration
42
+ @log_config = LogConfiguration.new(cybsPropertyObj['logConfiguration'])
43
43
  validateMerchantDetails()
44
44
  logAllProperties(cybsPropertyObj)
45
45
  end
46
46
  #fall back logic
47
47
  def validateMerchantDetails()
48
48
  logmessage=''
49
- if @enableLog.to_s.empty?
50
- @enableLog = true
51
- elsif @enableLog.instance_of? Integer
52
- @enableLog = @enableLog.to_s
53
- end
54
- if @logSize.to_s.empty?
55
- @logSize = Constants::DEFAULT_LOG_SIZE
56
- elsif !@logSize.instance_of? Integer
57
- @logSize=@logSize.to_i
58
- end
59
- if @logDirectory.to_s.empty? || !Dir.exist?(@logDirectory)
60
- @logDirectory = Constants::DEFAULT_LOG_DIRECTORY
61
- unless Dir.exist?(@logDirectory)
62
- Dir.mkdir(Constants::DEFAULT_LOG_DIRECTORY)
63
- end
64
- logmessage = Constants::WARNING_PREFIX + Constants::INVALID_LOG_DIRECTORY + File.expand_path(@logDirectory)
65
- end
66
- if @logFilename.to_s.empty?
67
- @logFilename = Constants::DEFAULT_LOGFILE_NAME
68
- elsif !@logFilename.instance_of? String
69
- @logFilename=@logFilename.to_s
70
- end
71
- @log_obj = Log.new @logDirectory,@logFilename,@logSize,@enableLog
49
+ @log_config.validate(logmessage)
50
+ @log_obj = Log.new @log_config, "MerchantConfig"
72
51
  @log_obj.logger.info('START> =======================================')
73
52
  if !logmessage.to_s.empty?
74
- ApiException.new.apiwarning(logmessage,log_obj)
75
- end
53
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning logmessage)
54
+ end
76
55
  if @authenticationType.to_s.empty?
77
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::AUTH_TYPE_MANDATORY)
78
- ApiException.new.apiexception(err,log_obj)
56
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::AUTH_TYPE_MANDATORY)
57
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
58
+ raise err
79
59
  end
80
- if !@authenticationType.instance_of? String
81
- err = raise StandardError.new(Constants::ERROR_PREFIX+ Constants::AUTH_ERROR)
82
- ApiException.new.apiexception(err,log_obj)
60
+ if !@authenticationType.instance_of? String
61
+ err = StandardError.new(Constants::ERROR_PREFIX+ Constants::AUTH_ERROR)
62
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
63
+ raise err
83
64
  end
84
65
  if !@runEnvironment.to_s.empty?
85
66
  if !@runEnvironment.instance_of? String
86
67
  @requestHost = @runEnvironment.to_s
87
68
  end
88
-
69
+
89
70
  if Constants::OLD_RUN_ENVIRONMENT_CONSTANTS.include?(@runEnvironment.upcase)
90
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::DERPECATED_ENVIRONMENT)
91
- ApiException.new.apiexception(err, log_obj)
71
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::DEPRECATED_ENVIRONMENT)
72
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
73
+ raise err
92
74
  else
93
75
  @requestHost = @runEnvironment
94
76
  end
95
77
  elsif @runEnvironment.to_s.empty?
96
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::RUN_ENVIRONMENT)
97
- ApiException.new.apiexception(err,log_obj)
78
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::RUN_ENVIRONMENT)
79
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
80
+ raise err
98
81
  end
99
82
 
100
83
  if !@enableClientCert.nil? && @enableClientCert
101
84
  if @sslClientCert.to_s.empty?
102
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::SSL_CLIENT_CERT_EMPTY)
103
- ApiException.new.apiexception(err,log_obj)
85
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::SSL_CLIENT_CERT_EMPTY)
86
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
87
+ raise err
104
88
  elsif !@sslClientCert.instance_of? String
105
89
  @sslClientCert=@sslClientCert.to_s
106
90
  end
107
91
  if @privateKey.to_s.empty?
108
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::PRIVATE_KEY_EMPTY)
109
- ApiException.new.apiexception(err,log_obj)
92
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::PRIVATE_KEY_EMPTY)
93
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
94
+ raise err
110
95
  elsif !@privateKey.instance_of? String
111
96
  @privateKey=@privateKey.to_s
112
97
  end
113
98
  if @sslKeyPassword.to_s.empty?
114
99
  err = Constants::WARNING_PREFIX + Constants::SSL_KEY_PASSWORD_EMPTY
115
- ApiException.new.apiwarning(err,log_obj)
100
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning err)
101
+ raise err
116
102
  elsif !@sslKeyPassword.instance_of? String
117
103
  @sslKeyPassword=@sslKeyPassword.to_s
118
104
  end
119
105
  if @clientCertDirectory.to_s.empty?
120
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_CERT_DIR_EMPTY)
121
- ApiException.new.apiexception(err,log_obj)
106
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_CERT_DIR_EMPTY)
107
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
108
+ raise err
122
109
  elsif !@clientCertDirectory.instance_of? String
123
110
  @clientCertDirectory=@clientCertDirectory.to_s
124
111
  end
@@ -126,90 +113,99 @@ public
126
113
 
127
114
  if @authenticationType.upcase == Constants::AUTH_TYPE_JWT
128
115
  if @merchantId.to_s.empty?
129
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
130
- ApiException.new.apiexception(err,log_obj)
116
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
117
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
118
+ raise err
131
119
  elsif !@merchantId.instance_of? String
132
120
  @merchantId=@merchantId.to_s
133
121
  end
134
122
  if @keyAlias.to_s.empty?
135
123
  @keyAlias = @merchantId
136
- ApiException.new.apiwarning(Constants::WARNING_PREFIX + Constants::KEY_ALIAS_NULL_EMPTY, log_obj)
124
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_ALIAS_NULL_EMPTY)
137
125
  elsif !@keyAlias.instance_of? String
138
126
  @keyAlias=@keyAlias.to_s
139
127
  elsif @keyAlias != @merchantId
140
128
  @keyAlias = @merchantId
141
- ApiException.new.apiwarning(Constants::WARNING_PREFIX + Constants::INCORRECT_KEY_ALIAS, log_obj)
129
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::INCORRECT_KEY_ALIAS)
142
130
  end
143
131
  if @keyPass.to_s.empty?
144
132
  @keyPass = @merchantId
145
- ApiException.new.apiwarning(Constants::WARNING_PREFIX + Constants::KEY_PASS_NULL, log_obj)
133
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_PASS_NULL)
146
134
  elsif !@keyPass.instance_of? String
147
135
  @keyPass=@keyPass.to_s
148
136
  end
149
137
  if @keysDirectory.to_s.empty?
150
138
  @keysDirectory = Constants::DEFAULT_KEY_DIRECTORY
151
- ApiException.new.apiwarning(Constants::WARNING_PREFIX + Constants::KEY_DIRECTORY_EMPTY + @keysDirectory, log_obj)
139
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_DIRECTORY_EMPTY + @keysDirectory)
152
140
  elsif !@keysDirectory.instance_of? String
153
141
  @keysDirectory=@keysDirectory.to_s
154
142
  end
155
143
  if @keyFilename.to_s.empty?
156
144
  @keyFilename = @merchantId
157
- ApiException.new.apiwarning(Constants::WARNING_PREFIX + Constants::KEY_FILE_NAME_NULL_EMPTY, log_obj)
145
+ @log_obj.logger.warn(ExceptionHandler.new.new_api_warning Constants::WARNING_PREFIX + Constants::KEY_FILE_NAME_NULL_EMPTY)
158
146
  elsif !@keyFilename.instance_of? String
159
147
  @keyFilename=@keyFilename.to_s
160
148
  end
161
149
  end
162
150
  if @authenticationType.upcase == Constants::AUTH_TYPE_MUTUAL_AUTH
163
151
  if @clientId.to_s.empty?
164
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_ID_EMPTY)
165
- ApiException.new.apiexception(err,log_obj)
152
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_ID_EMPTY)
153
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
154
+ raise err
166
155
  elsif !@clientId.instance_of? String
167
156
  @clientId=@clientId.to_s
168
157
  end
169
158
  if @clientSecret.to_s.empty?
170
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_SECRET_EMPTY)
171
- ApiException.new.apiexception(err,log_obj)
159
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::CLIENT_SECRET_EMPTY)
160
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
161
+ raise err
172
162
  elsif !@clientSecret.instance_of? String
173
163
  @clientSecret=@clientSecret.to_s
174
164
  end
175
165
  end
176
166
  if @authenticationType.upcase == Constants::AUTH_TYPE_OAUTH
177
167
  if @accessToken.to_s.empty?
178
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::ACCESS_TOKEN_EMPTY)
179
- ApiException.new.apiexception(err,log_obj)
168
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::ACCESS_TOKEN_EMPTY)
169
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
170
+ raise err
180
171
  elsif !@accessToken.instance_of? String
181
172
  @accessToken=@accessToken.to_s
182
173
  end
183
174
  if @refreshToken.to_s.empty?
184
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::REFRESH_TOKEN_EMPTY)
185
- ApiException.new.apiexception(err,log_obj)
175
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::REFRESH_TOKEN_EMPTY)
176
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
177
+ raise err
186
178
  elsif !@refreshToken.instance_of? String
187
179
  @refreshToken=@refreshToken.to_s
188
180
  end
189
181
  end
190
182
  if @authenticationType.upcase == Constants::AUTH_TYPE_HTTP
191
183
  if @merchantId.to_s.empty?
192
- err = raise StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
193
- ApiException.new.apiexception(err,log_obj)
184
+ err = StandardError.new(Constants::ERROR_PREFIX + Constants::MERCHANT_ID_NULL)
185
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
186
+ raise err
194
187
  elsif !@merchantId.instance_of? String
195
188
  @merchantId=@merchantId.to_s
196
189
  end
197
190
  if @merchantKeyId.to_s.empty?
198
- err = raise StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_KEY_ID_MANDATORY)
199
- ApiException.new.apiexception(err,log_obj)
191
+ err = StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_KEY_ID_MANDATORY)
192
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
193
+ raise err
200
194
  elsif !@merchantKeyId.instance_of? String
201
195
  @merchantKeyId=@merchantKeyId.to_s
202
196
  end
203
197
  if @merchantSecretKey.to_s.empty?
204
- err = raise StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_SECRET_KEY_MANDATORY)
205
- ApiException.new.apiexception(err,log_obj)
198
+ err = StandardError.new(Constants::ERROR_PREFIX+ Constants::MERCHANT_SECRET_KEY_MANDATORY)
199
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
200
+ raise err
206
201
  elsif !@merchantSecretKey.instance_of? String
207
202
  @merchantSecretKey=@merchantSecretKey.to_s
208
203
  end
209
204
  end
210
205
  if @useMetaKey && @portfolioID.to_s.empty?
211
- err = raise StandardError.new(Constants::ERROR_PREFIX+ Constants::PORTFOLIO_ID_MANDATORY)
212
- ApiException.new.apiexception(err,log_obj)
206
+ err = StandardError.new(Constants::ERROR_PREFIX+ Constants::PORTFOLIO_ID_MANDATORY)
207
+ @log_obj.logger.error(ExceptionHandler.new.new_api_exception err)
208
+ raise err
213
209
  end
214
210
 
215
211
  if !@proxyAddress.instance_of? String
@@ -219,6 +215,7 @@ public
219
215
  @proxyPort=@proxyPort.to_s
220
216
  end
221
217
  end
218
+
222
219
  def logAllProperties(propertyObj)
223
220
  merchantConfig = ''
224
221
  hiddenProperties = (Constants::HIDDEN_MERCHANT_PROPERTIES).split(',')
@@ -233,9 +230,9 @@ public
233
230
  end
234
231
  end
235
232
  end
236
- @log_obj.logger.info('MERCHCFG >' + propertyObj.to_s)
233
+ @log_obj.logger.info('Merchant Configuration :\n' + propertyObj.to_s)
237
234
  end
238
-
235
+
239
236
  # getter and setter methods
240
237
  attr_accessor :merchantId
241
238
  attr_accessor :merchantSecretKey
@@ -261,11 +258,8 @@ public
261
258
  attr_accessor :requestUrl
262
259
  attr_accessor :requestType
263
260
  attr_accessor :getId
264
- attr_accessor :logDirectory
265
- attr_accessor :logFilename
266
- attr_accessor :enableLog
267
- attr_accessor :logSize
268
261
  attr_accessor :logger
262
+ attr_accessor :log_config
269
263
  attr_accessor :proxyAddress
270
264
  attr_accessor :proxyPort
271
265
  attr_accessor :requestTarget