cybersource_rest_client 0.0.37 → 0.0.38

Sign up to get free protection for your applications and to get access to all the features.
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