Commit 15b9e672b358e957cc5aba5c1ab24835c8e204d9

Authored by Adhidarma Hadiwinoto
1 parent e62a7694fd
Exists in master

Fix custom rules

Showing 1 changed file with 32 additions and 2 deletions Side-by-side Diff

... ... @@ -11,6 +11,36 @@ const translateRc = require('./translate-rc');
11 11 const messageExtractor = require('./message-extractor');
12 12 const patternRules = require('./pattern-rules');
13 13  
  14 +const priceRules = (
  15 + config.partner
  16 + && config.partner.price_rules
  17 + && Array.isArray(config.partner.price_rules)
  18 + && config.partner.price_rules.length
  19 + && config.partner.price_rules
  20 + .filter((rule) => rule.pattern && !rule.disable && !rule.disabled)
  21 + .map((rule) => ({
  22 + pattern: (typeof rule.pattern === 'string') ? new RegExp(rule.pattern) : rule.pattern,
  23 + idx: rule.idx,
  24 + disable: rule.disable || rule.disabled,
  25 + postprocessing: rule.postprocessing,
  26 + }))
  27 +) || patternRules.price;
  28 +
  29 +const balanceRules = (
  30 + config.partner
  31 + && config.partner.balance_rules
  32 + && Array.isArray(config.partner.balance_rules)
  33 + && config.partner.balance_rules.length
  34 + && config.partner.balance_rules
  35 + .filter((rule) => rule.pattern && !rule.disable && !rule.disabled)
  36 + .map((rule) => ({
  37 + pattern: (typeof rule.pattern === 'string') ? new RegExp(rule.pattern) : rule.pattern,
  38 + idx: rule.idx,
  39 + disable: rule.disable || rule.disabled,
  40 + postprocessing: rule.postprocessing,
  41 + }))
  42 +) || patternRules.balance;
  43 +
14 44 module.exports = (xid, trxIdFromCaller, xml, isCallback, remoteIp) => {
15 45 logger.verbose(`${MODULE_NAME} 58547863: Processing XML message`, { xid, isCallback });
16 46  
... ... @@ -99,14 +129,14 @@ module.exports = (xid, trxIdFromCaller, xml, isCallback, remoteIp) => {
99 129  
100 130 const amount = Number(
101 131 messageExtractor(
102   - config.partner.price_rules || patternRules.price,
  132 + priceRules,
103 133 messageFromResponse,
104 134 ) || '',
105 135 ) || null;
106 136  
107 137 const balance = Number(
108 138 messageExtractor(
109   - config.partner.balance_rules || patternRules.balance,
  139 + balanceRules,
110 140 messageFromResponse,
111 141 ) || '',
112 142 ) || null;