new(core.gbapp): New API endpoint.

This commit is contained in:
Rodrigo Rodriguez 2024-04-17 16:07:19 -03:00
parent cafebf6fe2
commit 5655605d29

View file

@ -70,6 +70,7 @@ import { GBVMService } from './GBVMService.js';
* Default check interval for user replay * Default check interval for user replay
*/ */
const DEFAULT_HEAR_POLL_INTERVAL = 500; const DEFAULT_HEAR_POLL_INTERVAL = 500;
const API_RETRIES = 120;
/** /**
* Base services of conversation to be called by BASIC. * Base services of conversation to be called by BASIC.
@ -1270,14 +1271,15 @@ export class DialogKeywords {
} }
}); });
let messages = []; let messages = [];
GBLog.info(`MessageBot: Starting message polling ${conversation.conversationId}).`); GBLog.info(`MessageBot: Starting message polling ${conversation.conversationId}).`);
const worker = async () => { let count = API_RETRIES;
try { while (count--) {
await GBUtil.sleep(DEFAULT_HEAR_POLL_INTERVAL);
try {
const response = await client.apis.Conversations.Conversations_GetActivities({ const response = await client.apis.Conversations.Conversations_GetActivities({
conversationId: conversation.conversationId, conversationId: conversation.conversationId,
watermark: conversation.watermark watermark: conversation.watermark
@ -1285,7 +1287,6 @@ export class DialogKeywords {
conversation.watermarkMap = response.obj.watermark; conversation.watermarkMap = response.obj.watermark;
let activities = response.obj.activites; let activities = response.obj.activites;
if (activities && activities.length) { if (activities && activities.length) {
activities = activities.filter(m => m.from.id === min.botId && m.type === 'message'); activities = activities.filter(m => m.from.id === min.botId && m.type === 'message');
if (activities.length) { if (activities.length) {
@ -1294,18 +1295,16 @@ export class DialogKeywords {
GBLogEx.info(min, `MESSAGE BOT answer from bot: ${activity.text}`); GBLogEx.info(min, `MESSAGE BOT answer from bot: ${activity.text}`);
}); });
} }
}
return messages.join('\n'); return messages.join('\n');
}
} catch (err) { } catch (err) {
GBLog.error( GBLog.error(
`Error calling printMessages API ${err.data === undefined ? err : err.data} ${err.errObj ? err.errObj.message : '' `Error calling printMessages in messageBot API ${err.data === undefined ? err : err.data} ${err.errObj ? err.errObj.message : ''
}` }`
); );
return err;
} }
}; };
setInterval(worker, DEFAULT_HEAR_POLL_INTERVAL);
} }