Closed steve6 closed 2 years ago
@steve6 sto indagando sul codice, l'ultima dose che tipo di vaccino è?
ok @steve6 PFIZER non avevo visto il payload
ho provato con un test ad hoc e mi risulta
{
result: true,
code: 'VALID',
message: 'Doses 3/2 - Vaccination is valid [ 2021-09-18T00:00:00.000Z - 2023-03-12T00:00:00.000Z ] '
}
@astagi ma su quale regola ti va a finire?
@steve6 sulla regola che aggiunge i 540 giorni, come vedi dalla data di fine che mi esce fuori (qui la riprova).
Ho scritto questo test per fare una prova e capire se riesco a riprodurre il tuo errore ma non esce niente. In test/verification.test.js
ho modificato un pass di vaccinazione inserendo la dose booster e modificando la data di vaccinazione così che viene correttamente presa come booster e calcolata la sua end date sommando 540 giorni. Stai usando l'ultima versione della libreria giusto? Di seguito il codice
it.only('checks bug #42', async () => {
const dcc = await Certificate.fromImage(path.join('test', 'data', 'eu_test_certificates', 'SK_4.png'))
mockdate.set('2022-03-14T12:34:56.000Z');
dcc.vaccinations[dcc.vaccinations.length - 1].doseNumber = 3;
dcc.vaccinations[dcc.vaccinations.length - 1].dateOfVaccination = '2021-09-18';
const result = await verifyRulesFromCertificate(
dcc, true, Validator.codes.VALID,
);
console.log(result);
mockdate.reset();
});
Sto usando la versione "verificac19-sdk": "^0.8.0" installata tramite npm.
await Service.updateAll();
const myDCCfromRaw = await Certificate.fromRaw('GPASSRAW');
const validationResult = await Validator.validate(myDCCfromRaw, Validator.mode.SUPER_DGP);
console.log(validationResult)
Questo il codice del mio test senza il GP vero.
E il risultato che ottengo è sempre questo:
person: 'xxx', date_of_birth: '1974-01-24', result: false, code: 'NOT_VALID', message: 'Doses 3/2 - Vaccination is expired at : 2022-03-17T00:00:00.000Z'
Appena dopo aver scritto il commento ho visto che non si era aggiornato il pacchetto alla 0.9.4...
Scusa risolto grazie!
Ma figurati @steve6 felice che il problema sia risolto :) buon lavoro!
Describe the bug Sto cercando di validare un greenPass terza dose che dovrebbe, credo, avere validità 540 gironi. Invece viene applicata la regola 180 giorni.
Come di può vedere qua:
Guardando sul codice e sulle regole in effetti cade su questa regola:
{ "name": "vaccine_end_day_complete", "type": "EU/1/20/1528", "value": "180" },
e non su questa:
{ "name": "vaccine_end_day_booster_IT", "type": "GENERIC", "value": "540" },
dove sta l'errore?
Grazie