Skip to content

Commit c552e13

Browse files
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 <[email protected]>
1 parent 54ade29 commit c552e13

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

lib/Service/FileService.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ private function loadLibreSignSigners(): void {
387387
$this->fileData->signers[$index]['me'] = false;
388388
$this->fileData->signers[$index]['signRequestId'] = $signer->getId();
389389
$this->fileData->signers[$index]['description'] = $signer->getDescription();
390+
$this->fileData->signers[$index]['status'] = $signer->getStatus();
391+
$this->fileData->signers[$index]['statusText'] = $this->signRequestMapper->getTextOfSignerStatus($signer->getStatus());
390392
$this->fileData->signers[$index]['signingOrder'] = $signer->getSigningOrder();
391393
$this->fileData->signers[$index]['visibleElements'] = $this->getVisibleElements($signer->getId());
392394
$this->fileData->signers[$index]['request_sign_date'] = $signer->getCreatedAt()->format(DateTimeInterface::ATOM);
@@ -487,6 +489,11 @@ private function loadLibreSignSigners(): void {
487489
private function loadSignersFromCertData(): void {
488490
$this->loadCertDataFromLibreSignFile();
489491
foreach ($this->certData as $index => $signer) {
492+
// Always set status and statusText for signers from certificate data
493+
// These are already signed (status 2)
494+
$this->fileData->signers[$index]['status'] = 2;
495+
$this->fileData->signers[$index]['statusText'] = $this->signRequestMapper->getTextOfSignerStatus(2);
496+
490497
if (isset($signer['timestamp'])) {
491498
$this->fileData->signers[$index]['timestamp'] = $signer['timestamp'];
492499
if (isset($signer['timestamp']['genTime']) && $signer['timestamp']['genTime'] instanceof DateTimeInterface) {
@@ -834,9 +841,10 @@ private function associateAllAndFormat(IUser $user, array $files, array $signers
834841
'request_sign_date' => $signer->getCreatedAt()->format(DateTimeInterface::ATOM),
835842
'signed' => null,
836843
'signRequestId' => $signer->getId(),
837-
'signingOrder' => $signer->getSigningOrder(),
838-
'status' => $signer->getStatus(),
839-
'me' => array_reduce($identifyMethodsOfSigner, function (bool $carry, IdentifyMethod $identifyMethod) use ($user): bool {
844+
'signingOrder' => $signer->getSigningOrder(),
845+
'status' => $signer->getStatus(),
846+
'statusText' => $this->signRequestMapper->getTextOfSignerStatus($signer->getStatus()),
847+
'me' => array_reduce($identifyMethodsOfSigner, function (bool $carry, IdentifyMethod $identifyMethod) use ($user): bool {
840848
if ($identifyMethod->getIdentifierKey() === IdentifyMethodService::IDENTIFY_ACCOUNT) {
841849
if ($user->getUID() === $identifyMethod->getIdentifierValue()) {
842850
return true;

0 commit comments

Comments
 (0)