italia / verificac19-sdk

✅ Official VerificaC19 Node.js SDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Validazione RecoveryStatement differisce dall'sdk android del ministero-salute

DevPGS opened this issue · comments

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

@DevPGS questa PR dovrebbe risolvere il problema, dimmi cosa ne pensi :) Grazie della segnalazione