diff --git a/src/internal/processScans.ts b/src/internal/processScans.ts index 05d5d32..cd685d5 100644 --- a/src/internal/processScans.ts +++ b/src/internal/processScans.ts @@ -4,10 +4,10 @@ export const processScans = async (event) => { console.log(`START PROCESS SCANS`); const startTime = new Date().getTime(); await db.connect(); - const { userId, propertyId } = event; + const { userId, propertyId, discovery } = event; const jobIds = (await db.query({ - text: `SELECT "job_id" FROM "scans" WHERE "user_id"=$1 AND "property_id"=$2 AND "processing" = TRUE`, - values: [userId, propertyId], + text: `SELECT s.job_id FROM scans as s INNER JOIN properties AS p ON s.property_id = p.id WHERE s.user_id=$1 AND s.property_id=$2 AND s.processing = TRUE AND p.discovery=$3`, + values: [userId, propertyId, discovery], })).rows.map(obj => obj.job_id); const allNodeIds = []; const pollScans = (givenJobIds) => new Promise(async (finalRes) => { diff --git a/src/routes/addScans.ts b/src/routes/addScans.ts index 379e141..058b1ed 100644 --- a/src/routes/addScans.ts +++ b/src/routes/addScans.ts @@ -17,7 +17,7 @@ export const addScans = async ({ request, reply }) => { if (!property.discovery) { return { status: 'error', - message: 'One or more of the provided propertyIds is invalid', + message: 'You must provide a property discovery attribute, either "single" or "sitemap"', } } try { @@ -54,20 +54,24 @@ export const addScans = async ({ request, reply }) => { values: [jwtClaims.sub, propertyId, urlId, parseInt(jobId)] })).rows[0]; } + + if (property.discovery === 'single') { + lambda.send(new InvokeCommand({ + FunctionName: `equalify-api${isStaging ? '-staging' : ''}`, + InvocationType: "Event", + Payload: Buffer.from(JSON.stringify({ + path: '/internal/processScans', + userId: jwtClaims.sub, + propertyId: propertyId, + discovery: 'single', + })), + })); + } } } catch (err) { console.log(err); } - // lambda.send(new InvokeCommand({ - // FunctionName: `equalify-api${isStaging ? '-staging' : ''}`, - // InvocationType: "Event", - // Payload: Buffer.from(JSON.stringify({ - // path: '/internal/processScans', - // userId: jwtClaims.sub, - // propertyId: propertyId, - // })), - // })); } await db.clean(); diff --git a/src/scheduled/runEveryFifteenMinutes.ts b/src/scheduled/runEveryFifteenMinutes.ts index b21f004..6a8ff42 100644 --- a/src/scheduled/runEveryFifteenMinutes.ts +++ b/src/scheduled/runEveryFifteenMinutes.ts @@ -30,6 +30,7 @@ export const runEveryFifteenMinutes = async () => { path: '/internal/processScans', userId: user_id, propertyId: property_id, + discovery: 'sitemap', })), })); }