mirror of
https://github.com/LibreSign/libresign.git
synced 2025-12-17 21:12:16 +01:00
feat: include status and statusText in signer responses
Add status and statusText fields to all signer data returned by FileService. This includes: - Signers from LibreSign metadata (loadLibreSignSigners) - Signers from PDF certificate data (loadSignersFromCertData) - Signers in file listings (associateAllAndFormat) The status field contains the numeric code (0=Draft, 1=Pending, 2=Signed) and statusText contains the localized label. Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
This commit is contained in:
parent
8602edfb4e
commit
8af983763d
1 changed files with 11 additions and 3 deletions
|
|
@ -387,6 +387,8 @@ class FileService {
|
|||
$this->fileData->signers[$index]['me'] = false;
|
||||
$this->fileData->signers[$index]['signRequestId'] = $signer->getId();
|
||||
$this->fileData->signers[$index]['description'] = $signer->getDescription();
|
||||
$this->fileData->signers[$index]['status'] = $signer->getStatus();
|
||||
$this->fileData->signers[$index]['statusText'] = $this->signRequestMapper->getTextOfSignerStatus($signer->getStatus());
|
||||
$this->fileData->signers[$index]['signingOrder'] = $signer->getSigningOrder();
|
||||
$this->fileData->signers[$index]['visibleElements'] = $this->getVisibleElements($signer->getId());
|
||||
$this->fileData->signers[$index]['request_sign_date'] = $signer->getCreatedAt()->format(DateTimeInterface::ATOM);
|
||||
|
|
@ -487,6 +489,11 @@ class FileService {
|
|||
private function loadSignersFromCertData(): void {
|
||||
$this->loadCertDataFromLibreSignFile();
|
||||
foreach ($this->certData as $index => $signer) {
|
||||
// Always set status and statusText for signers from certificate data
|
||||
// These are already signed (status 2)
|
||||
$this->fileData->signers[$index]['status'] = 2;
|
||||
$this->fileData->signers[$index]['statusText'] = $this->signRequestMapper->getTextOfSignerStatus(2);
|
||||
|
||||
if (isset($signer['timestamp'])) {
|
||||
$this->fileData->signers[$index]['timestamp'] = $signer['timestamp'];
|
||||
if (isset($signer['timestamp']['genTime']) && $signer['timestamp']['genTime'] instanceof DateTimeInterface) {
|
||||
|
|
@ -834,9 +841,10 @@ class FileService {
|
|||
'request_sign_date' => $signer->getCreatedAt()->format(DateTimeInterface::ATOM),
|
||||
'signed' => null,
|
||||
'signRequestId' => $signer->getId(),
|
||||
'signingOrder' => $signer->getSigningOrder(),
|
||||
'status' => $signer->getStatus(),
|
||||
'me' => array_reduce($identifyMethodsOfSigner, function (bool $carry, IdentifyMethod $identifyMethod) use ($user): bool {
|
||||
'signingOrder' => $signer->getSigningOrder(),
|
||||
'status' => $signer->getStatus(),
|
||||
'statusText' => $this->signRequestMapper->getTextOfSignerStatus($signer->getStatus()),
|
||||
'me' => array_reduce($identifyMethodsOfSigner, function (bool $carry, IdentifyMethod $identifyMethod) use ($user): bool {
|
||||
if ($identifyMethod->getIdentifierKey() === IdentifyMethodService::IDENTIFY_ACCOUNT) {
|
||||
if ($user->getUID() === $identifyMethod->getIdentifierValue()) {
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue