Validazione RecoveryStatement differisce dall'sdk android del ministero-salute
DevPGS opened this issue · comments
DevPGS commented
Describe the bug
Data fine validità non coerente con sdk android.
Dal codice in /src/validator.js , la data di fine validità è la somma di validUntil con RECOVERY_CERT_END_DAY,
mentre sull'sdk ( \sdk\src\main\java\it\ministerodellasalute\verificaC19sdk\model\VerificationViewModel.kt ):
NOT_VALID (scaduto)
data verifica > validFrom + RECOVERY_CERT_START_DAY + RECOVERY_CERT_END_DAY
PARTIALLY_VALID
data verifica > validUntil
/src/validator.js
startDate = addDays(startDate, recoveryCertStartDay.value);
endDate = addDays(endDate, recoveryCertEndDay.value);
...
if (startDate > now) {
return {
code: NOT_VALID_YET,
message:
`Recovery statement is not valid yet, starts at : ${
startDate.toISOString()}`,
};
}
if (now > endDate) {
return {
code: NOT_VALID,
message: `Recovery statement is expired at : ${endDate.toISOString()}`,
};
}
Expected behavior
valid_from = cert->validFrom;
start_date = addDays(valid_from, recoveryCertStartDay.value);
end_date = cert->validUntil;
if (start_date > validation_date) NOT_VALID_YET
if (validation_date > addDays(start_date, recoveryCertEndDay.value) ) NOT_VALID
if (validation_date > end_date ) PARTIALLY_VALID
Andrea Stagi commented
@DevPGS questa PR dovrebbe risolvere il problema, dimmi cosa ne pensi :) Grazie della segnalazione