Skip to content

Commit

Permalink
Merge pull request #10 from italia/feat/pa2026_new_fields
Browse files Browse the repository at this point in the history
Feat/pa2026 new fields
  • Loading branch information
GiandonatoGreco authored Dec 21, 2022
2 parents e2bad48 + c178f1a commit 5e3787e
Show file tree
Hide file tree
Showing 9 changed files with 197 additions and 71 deletions.
20 changes: 10 additions & 10 deletions command/queueManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,6 @@ dbQM
);
}

console.log("FIRST TIME ENTITIES", firstTimeEntityToBeAnalyzed.length);
console.log(
"RESCAN ENTITIES TO BE ANALYZED",
rescanEntityToBeAnalyzed.length
);
console.log(
"RESCAN ASSEVERATED ENTITIES",
rescanEntityAsseveratedToBeAnalyzed.length
);

if (firstTimeEntityToBeAnalyzed.length > 0) {
await generateJobs(
firstTimeEntityToBeAnalyzed,
Expand Down Expand Up @@ -144,6 +134,16 @@ dbQM
);
}

console.log("FIRST TIME ENTITIES", firstTimeEntityToBeAnalyzed.length);
console.log(
"RESCAN ENTITIES TO BE ANALYZED",
rescanEntityToBeAnalyzed.length
);
console.log(
"RESCAN ASSEVERATED ENTITIES",
rescanEntityAsseveratedToBeAnalyzed.length
);

const counts = await crawlerQueue.getJobCounts(
"wait",
"completed",
Expand Down
16 changes: 14 additions & 2 deletions command/scanManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@ import {
isPassedReport,
} from "../controller/auditController";
import { jobController } from "../controller/jobController";
import { pushResult } from "../controller/PA2026/integrationController";
import {
pushResult,
pushResultUrlNotExists,
} from "../controller/PA2026/integrationController";
import { urlExists } from "../utils/utils";

dbSM
.authenticate()
Expand Down Expand Up @@ -76,8 +80,16 @@ const scan = async (jobId) => {
});

const jobObjParsed = jobObj.toJSON();
const urlToBeScanned = jobObjParsed.scan_url;

const urlToBeScannedExists = await urlExists(urlToBeScanned);
if (!urlToBeScannedExists) {
await pushResultUrlNotExists(jobObj);
throw new Error("Scan URL does not exists");
}

const lighthouseResult = await run(
jobObjParsed.scan_url,
urlToBeScanned,
jobObjParsed.type,
"online",
logLevels.display_none,
Expand Down
58 changes: 54 additions & 4 deletions controller/PA2026/integrationController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ import {
define as jobDefine,
preserveReasons,
} from "../../database/models/job";
import { mapPA2026Body } from "../../utils/utils";
import {
calculatePassedAuditPercentage,
mapPA2026Body,
mapPA2026BodyUrlNotExists,
} from "../../utils/utils";

const retrieveToken = async () => {
try {
Expand Down Expand Up @@ -115,19 +119,26 @@ const pushResult = async (
const isFirstScan =
job.preserve && job.preserve_reason === preserveReasons[0];

const passedAuditsPercentage = await calculatePassedAuditPercentage(
job,
cleanJsonReport
);

let scanBody = await mapPA2026Body(
job,
cleanJsonReport,
generalStatus,
false
false,
passedAuditsPercentage
);

if (isFirstScan) {
const firsScanBody = await mapPA2026Body(
job,
cleanJsonReport,
generalStatus,
true
true,
passedAuditsPercentage
);

scanBody = {
Expand Down Expand Up @@ -173,4 +184,43 @@ const pushResult = async (
}
};

export { retrieveToken, callQuery, callPatch, pushResult };
const pushResultUrlNotExists = async (job: Job) => {
try {
const entity = await new entityController(dbSM).retrieveByPk(job.entity_id);

const scanBody = await mapPA2026BodyUrlNotExists();

const result = await callPatch(
scanBody,
process.env.PA2026_UPDATE_RECORDS_PATH.replace(
"{external_entity_id}",
entity.external_id
)
);

//Warn: API returns empty string when it success
if (result !== "") {
throw new Error("Send data failed");
}

await job.update({
data_sent_status: "COMPLETED",
data_sent_date: new Date(),
});
} catch (e) {
console.log("PUSH RESULT EXCEPTION", e.toString());

await job.update({
data_sent_status: "ERROR",
data_sent_date: new Date(),
});
}
};

export {
retrieveToken,
callQuery,
callPatch,
pushResult,
pushResultUrlNotExists,
};
38 changes: 4 additions & 34 deletions controller/auditController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,29 +71,12 @@ const cleanMunicipalityJSONReport = async (jsonResult: string) => {
performanceStatus = false;
}

let informedCitizenStatus = false;
if (
const informedCitizenStatus =
userExperienceStatus &&
functionStatus &&
legislationStatus &&
securityStatus &&
performanceStatus
) {
informedCitizenStatus = true;
}

//const activeCitizenAudits = await getAuditByClusterGroup(
// parsedResult,
// municipalityAudits,
// "active-citizen"
//);
//let activeCitizenStatus = false;
//if (
// Object.keys(activeCitizenAudits.passed).length > 0 &&
// Object.keys(activeCitizenAudits.failed).length === 0
//) {
// activeCitizenStatus = true;
//}
performanceStatus;

const recommendationsAudits = await getAuditByClusterGroup(
parsedResult,
Expand Down Expand Up @@ -138,11 +121,6 @@ const cleanMunicipalityJSONReport = async (jsonResult: string) => {
},
},

//"cittadino-attivo": {
// status: activeCitizenStatus,
// audits: { ...activeCitizenAudits.passed, ...activeCitizenAudits.failed },
//},

raccomandazioni: {
status: recommendationsStatus,
audits: {
Expand Down Expand Up @@ -204,15 +182,8 @@ const cleanSchoolJSONReport = async (jsonResult: string) => {
performanceStatus = false;
}

let complianceCriteriaStatus = false;
if (
userExperienceStatus &&
legislationStatus &&
securityStatus &&
performanceStatus
) {
complianceCriteriaStatus = true;
}
const complianceCriteriaStatus =
userExperienceStatus && legislationStatus && securityStatus;

const recommendationsAudits = await getAuditByClusterGroup(
parsedResult,
Expand Down Expand Up @@ -349,7 +320,6 @@ const isPassedReport = async (
} else if (subtype === allowedMunicipalitySubTypes[1]) {
// eslint-disable-next-line
passed = jsonReport["cittadino-informato"].status;
//&& jsonReport["cittadino-attivo"].status;
} else {
passed = false;
}
Expand Down
7 changes: 1 addition & 6 deletions database/models/job.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,7 @@ const options = {
Sequelize.literal(
"((json_result->'raccomandazioni'->'audits'->>'municipality-metatag')::float)"
),
//Sequelize.literal(
// "((json_result->'cittadino-attivo'->'audits'->>'municipality-subdomain')::float)"
//),
//Sequelize.literal(
// "((json_result->'cittadino-attivo'->'audits'->>'municipality-personal-area-security')::float)"
//),

Sequelize.literal(
"((json_result->'cittadino-informato'->'groups'->'normativa'->'audits'->>'municipality-legislation-privacy-is-present')::float)"
),
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "crawler-handler",
"version": "1.2.0",
"version": "1.2.1",
"description": "Handler per il validatore di comuni e scuole",
"main": "index.js",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion routes/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ router.post(
router.get(
"/api/info",
(req: emptyBodyType, res: successResponseType | errorResponseType): void => {
succesResponse({ version: "1.1.8" }, res, 200);
succesResponse({ version: "1.2.1" }, res, 200);
}
);

Expand Down
4 changes: 0 additions & 4 deletions storage/municipalityAudits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,5 @@ export const audits = {
],
security: ["municipality-security", "municipality-domain"],
},
//"active-citizen": [
// "municipality-personal-area-security",
// "municipality-subdomain",
//],
recommendations: ["municipality-metatag"],
};
Loading

0 comments on commit 5e3787e

Please sign in to comment.