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:
Vitor Mattos 2025-12-11 14:34:36 -03:00
parent 8602edfb4e
commit 8af983763d
No known key found for this signature in database
GPG key ID: 6FECE2AD4809003A

View file

@ -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;