Commit 15b9e672b358e957cc5aba5c1ab24835c8e204d9
1 parent
e62a7694fd
Exists in
master
Fix custom rules
Showing 1 changed file with 32 additions and 2 deletions Side-by-side Diff
lib/parse-result.js
... | ... | @@ -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; |