Skip to content

Commit e49f868

Browse files
feat: improved redis lookup
1 parent 0627aa8 commit e49f868

File tree

4 files changed

+37
-28
lines changed

4 files changed

+37
-28
lines changed

__tests__/unit/logic.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ describe('TADProc Service', () => {
4141
});
4242
});
4343

44+
jest.spyOn(databaseManager, 'addOneGetCount').mockImplementation((...args: unknown[]): Promise<number> => {
45+
return new Promise<number>((resolve, reject) => {
46+
resolve(1);
47+
});
48+
});
49+
4450
jest.spyOn(databaseManager, 'setAdd').mockImplementation((key: string, value: string): Promise<void> => {
4551
return new Promise<void>((resolve, reject) => {
4652
cacheString = value;

package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
],
4040
"license": "ISC",
4141
"dependencies": {
42-
"@frmscoe/frms-coe-lib": "^0.3.0",
42+
"@frmscoe/frms-coe-lib": "^0.3.2",
4343
"@frmscoe/frms-coe-startup-lib": "^0.0.14",
4444
"@log4js-node/logstash-http": "^1.1.0",
4545
"arangojs": "^8.4.0",

src/services/logic.service.ts

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,19 @@ export const handleChannels = async (
102102

103103
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
104104
const cacheKey = `tadp_${transactionID}_${message.id}_${message.cfg}`;
105-
106105
const spanDBMembers = apm.startSpan('db.get.members');
106+
const jtypologyCount = await databaseManager.addOneGetCount(cacheKey, channelResult);
107+
108+
// check if all Channel results for this transaction is found
109+
if (jtypologyCount && jtypologyCount.length < message.channels.length) {
110+
const spanCacheChannelResults = apm.startSpan('cache.add.channelResults');
111+
// await databaseManager.setAdd(cacheKey, JSON.stringify(channelResults));
112+
spanCacheChannelResults?.end();
113+
span?.end();
114+
loggerService.log('All channels not completed.');
115+
return [];
116+
}
117+
107118
const jchannelResults = await databaseManager.getMembers(cacheKey);
108119
spanDBMembers?.end();
109120
const channelResults: ChannelResult[] = [];
@@ -115,28 +126,20 @@ export const handleChannels = async (
115126
}
116127
}
117128

118-
if (!message.channels.some((c) => c.id === channelResult.id && c.cfg === channelResult.cfg)) {
119-
loggerService.warn('Channel not part of Message - ignoring.');
120-
span?.end();
121-
return [];
122-
}
129+
// if (!message.channels.some((c) => c.id === channelResult.id && c.cfg === channelResult.cfg)) {
130+
// loggerService.warn('Channel not part of Message - ignoring.');
131+
// span?.end();
132+
// return [];
133+
// }
123134

124-
if (channelResults.some((t) => t.id === channelResult.id && t.cfg === channelResult.cfg)) {
125-
loggerService.warn('Channel already processed - ignoring.');
126-
span?.end();
127-
return [];
128-
}
135+
// if (channelResults.some((t) => t.id === channelResult.id && t.cfg === channelResult.cfg)) {
136+
// loggerService.warn('Channel already processed - ignoring.');
137+
// span?.end();
138+
// return [];
139+
// }
129140

130141
channelResults.push(channelResult);
131-
// check if all Channel results for this transaction is found
132-
if (channelResults.length < message.channels.length) {
133-
const spanCacheChannelResults = apm.startSpan('cache.add.channelResults');
134-
await databaseManager.setAdd(cacheKey, JSON.stringify(channelResults));
135-
spanCacheChannelResults?.end();
136-
span?.end();
137-
loggerService.log('All channels not completed.');
138-
return [];
139-
}
142+
140143
let review = false;
141144
if (requiredConfigMessage)
142145
for (const configuredChannel of requiredConfigMessage.channels) {

0 commit comments

Comments
 (0)