2020-05-03 17:53:30 +00:00
|
|
|
const { getMasterData, Schema, getStatusCode } = require('./utils.js');
|
2020-01-20 20:37:32 +00:00
|
|
|
const srcData = require('../src/data.js');
|
2020-01-10 16:48:46 +00:00
|
|
|
|
2020-01-21 22:15:35 +00:00
|
|
|
async function main() {
|
2020-01-18 13:27:15 +00:00
|
|
|
// on master branch will be empty array
|
|
|
|
|
const masterDataUrls = (await getMasterData()).map(d => d.url);
|
|
|
|
|
// so here data will be an array with all users
|
|
|
|
|
const data = srcData.filter(d => !masterDataUrls.includes(d.url));
|
|
|
|
|
|
|
|
|
|
const errors = data
|
2020-05-03 17:55:24 +00:00
|
|
|
.map(person =>
|
|
|
|
|
Schema.validate(person, {
|
|
|
|
|
abortEarly: false,
|
|
|
|
|
})
|
|
|
|
|
)
|
2020-01-18 13:27:15 +00:00
|
|
|
.filter(v => v.error)
|
|
|
|
|
.map(v => v.error);
|
|
|
|
|
|
2020-05-03 18:28:55 +00:00
|
|
|
const errorMsgs = [];
|
|
|
|
|
|
2020-01-18 13:27:15 +00:00
|
|
|
errors.forEach(e => {
|
2020-05-03 18:28:55 +00:00
|
|
|
e.details.forEach(d => errorMsgs.push(d.message));
|
2020-01-13 15:38:23 +00:00
|
|
|
});
|
|
|
|
|
|
2020-05-03 18:28:55 +00:00
|
|
|
/**
|
|
|
|
|
* @type {{url: string, statusCode?: number, error?: Error}[]}
|
|
|
|
|
*/
|
2020-01-21 22:15:35 +00:00
|
|
|
const failedUrls = [];
|
2020-01-20 20:37:32 +00:00
|
|
|
for (const { url } of data) {
|
2020-01-18 13:27:15 +00:00
|
|
|
try {
|
|
|
|
|
const statusCode = await getStatusCode(url);
|
|
|
|
|
if (statusCode < 200 || statusCode >= 400) {
|
2020-05-03 18:28:55 +00:00
|
|
|
failedUrls.push({ url, statusCode });
|
2020-01-18 13:27:15 +00:00
|
|
|
}
|
|
|
|
|
} catch (e) {
|
2020-05-03 18:28:55 +00:00
|
|
|
failedUrls.push({ url, error: e });
|
2020-01-13 15:38:23 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-03 17:44:56 +00:00
|
|
|
return {
|
|
|
|
|
failedUrls,
|
2020-05-03 18:28:55 +00:00
|
|
|
errorMsgs,
|
2020-05-03 17:44:56 +00:00
|
|
|
data,
|
|
|
|
|
};
|
2020-01-21 22:15:35 +00:00
|
|
|
}
|
2020-01-18 13:27:15 +00:00
|
|
|
|
2020-05-03 17:44:56 +00:00
|
|
|
module.exports = main;
|