From 759e8b6c4251bd3b9f2ebfb5d9c152be5b329e37 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Tue, 7 May 2024 11:33:55 +0000 Subject: [PATCH] fix(vtiger-crm/triggers): correct pagination --- .../apps/vtiger-crm/triggers/new-cases/index.js | 15 +++++++-------- .../vtiger-crm/triggers/new-contacts/index.js | 15 +++++++-------- .../vtiger-crm/triggers/new-invoices/index.js | 15 +++++++-------- .../apps/vtiger-crm/triggers/new-leads/index.js | 15 +++++++-------- .../triggers/new-opportunities/index.js | 15 +++++++-------- .../apps/vtiger-crm/triggers/new-todos/index.js | 15 +++++++-------- 6 files changed, 42 insertions(+), 48 deletions(-) diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-cases/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-cases/index.js index c94a3027..40915153 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-cases/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-cases/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Cases ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Cases ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) { diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-contacts/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-contacts/index.js index cf602140..0a8da870 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-contacts/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-contacts/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Contacts ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Contacts ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) { diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js index d23062f9..ac17d6f9 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Invoice ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Invoice ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) { diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-leads/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-leads/index.js index 84754f06..03999ba5 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-leads/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-leads/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Leads ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Leads ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) { diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js index 161cf840..db3cd151 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Potentials ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Potentials ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) { diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-todos/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-todos/index.js index 4372b4b9..4bf72294 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/new-todos/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-todos/index.js @@ -11,21 +11,20 @@ export default defineTrigger({ const limit = 100; let hasMore = true; - const params = { - operation: 'query', - sessionName: $.auth.data.sessionName, - query: `SELECT * FROM Calendar ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, - }; - do { + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Calendar ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + const { data } = await $.http.get('/webservice.php', { params, }); offset = limit + offset; - if (!data?.result?.length) { + if (!data.result?.length || data.result.length < limit) { hasMore = false; - return; } for (const item of data.result) {