From 552521e5460bcea40406afdf10bb95b86a4dee84 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Thu, 11 Dec 2025 11:42:11 -0300 Subject: [PATCH 1/2] refactor: move SignRequestStatus enum to dedicated Enum directory Move SignRequestStatus from lib/Db/ to lib/Enum/ to follow project convention of keeping all enums in a dedicated folder alongside CRLStatus, CRLReason, CertificateType, and DocMdpLevel. Updated namespace from OCA\Libresign\Db to OCA\Libresign\Enum and adjusted all imports and references across: - SignRequest entity (added import) - ValidateHelper (updated FQN references) - RequestSignatureService (updated FQN references) - SequentialSigningService (updated import) - SignFileService (updated FQN reference) This improves code organization by consolidating all enum types in one location. Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- lib/Db/SignRequest.php | 1 + lib/{Db => Enum}/SignRequestStatus.php | 3 ++- lib/Helper/ValidateHelper.php | 4 ++-- lib/Service/RequestSignatureService.php | 12 ++++++------ lib/Service/SequentialSigningService.php | 3 ++- lib/Service/SignFileService.php | 2 +- 6 files changed, 14 insertions(+), 11 deletions(-) rename lib/{Db => Enum}/SignRequestStatus.php (88%) diff --git a/lib/Db/SignRequest.php b/lib/Db/SignRequest.php index 4961481d28..3c4e6da98a 100644 --- a/lib/Db/SignRequest.php +++ b/lib/Db/SignRequest.php @@ -8,6 +8,7 @@ namespace OCA\Libresign\Db; +use OCA\Libresign\Enum\SignRequestStatus; use OCP\AppFramework\Db\Entity; use OCP\DB\Types; diff --git a/lib/Db/SignRequestStatus.php b/lib/Enum/SignRequestStatus.php similarity index 88% rename from lib/Db/SignRequestStatus.php rename to lib/Enum/SignRequestStatus.php index 6b3776dbb7..7767179b66 100644 --- a/lib/Db/SignRequestStatus.php +++ b/lib/Enum/SignRequestStatus.php @@ -1,12 +1,13 @@ signRequestMapper->getByUuid($uuid); $status = $signRequest->getStatusEnum(); - if ($status === \OCA\Libresign\Db\SignRequestStatus::DRAFT) { + if ($status === \OCA\Libresign\Enum\SignRequestStatus::DRAFT) { throw new LibresignException(json_encode([ 'action' => JSActions::ACTION_DO_NOTHING, 'errors' => [['message' => $this->l10n->t('You are not allowed to sign this document yet')]], ])); } - if ($status === \OCA\Libresign\Db\SignRequestStatus::SIGNED) { + if ($status === \OCA\Libresign\Enum\SignRequestStatus::SIGNED) { throw new LibresignException(json_encode([ 'action' => JSActions::ACTION_DO_NOTHING, 'errors' => [['message' => $this->l10n->t('Document already signed')]], diff --git a/lib/Service/RequestSignatureService.php b/lib/Service/RequestSignatureService.php index 2a3b5acc99..4dd1e358ce 100644 --- a/lib/Service/RequestSignatureService.php +++ b/lib/Service/RequestSignatureService.php @@ -267,14 +267,14 @@ private function associateToSigner( $isNewSignRequest = !$signRequest->getId(); $currentStatus = $signRequest->getStatusEnum(); - if ($isNewSignRequest || $currentStatus === \OCA\Libresign\Db\SignRequestStatus::DRAFT) { + if ($isNewSignRequest || $currentStatus === \OCA\Libresign\Enum\SignRequestStatus::DRAFT) { $initialStatus = $this->determineInitialStatus($signingOrder); $signRequest->setStatusEnum($initialStatus); } $this->saveSignRequest($signRequest); - $shouldNotify = $notify && $signRequest->getStatusEnum() === \OCA\Libresign\Db\SignRequestStatus::ABLE_TO_SIGN; + $shouldNotify = $notify && $signRequest->getStatusEnum() === \OCA\Libresign\Enum\SignRequestStatus::ABLE_TO_SIGN; foreach ($identifyMethodsIncances as $identifyMethod) { $identifyMethod->getEntity()->setSignRequestId($signRequest->getId()); @@ -284,14 +284,14 @@ private function associateToSigner( return $signRequest; } - private function determineInitialStatus(int $signingOrder): \OCA\Libresign\Db\SignRequestStatus { + private function determineInitialStatus(int $signingOrder): \OCA\Libresign\Enum\SignRequestStatus { if (!$this->sequentialSigningService->isOrderedNumericFlow()) { - return \OCA\Libresign\Db\SignRequestStatus::ABLE_TO_SIGN; + return \OCA\Libresign\Enum\SignRequestStatus::ABLE_TO_SIGN; } return $signingOrder === 1 - ? \OCA\Libresign\Db\SignRequestStatus::ABLE_TO_SIGN - : \OCA\Libresign\Db\SignRequestStatus::DRAFT; + ? \OCA\Libresign\Enum\SignRequestStatus::ABLE_TO_SIGN + : \OCA\Libresign\Enum\SignRequestStatus::DRAFT; } /** diff --git a/lib/Service/SequentialSigningService.php b/lib/Service/SequentialSigningService.php index db67ad6eb7..7c3398890f 100644 --- a/lib/Service/SequentialSigningService.php +++ b/lib/Service/SequentialSigningService.php @@ -10,7 +10,8 @@ use OCA\Libresign\AppInfo\Application; use OCA\Libresign\Db\SignRequestMapper; -use OCA\Libresign\Db\SignRequestStatus; +use OCA\Libresign\Enum\SignatureFlow; +use OCA\Libresign\Enum\SignRequestStatus; use OCP\IAppConfig; class SequentialSigningService { diff --git a/lib/Service/SignFileService.php b/lib/Service/SignFileService.php index 9ae82dfe96..c67ff9f46d 100644 --- a/lib/Service/SignFileService.php +++ b/lib/Service/SignFileService.php @@ -376,7 +376,7 @@ protected function updateSignRequest(string $hash): void { $lastSignedDate = $this->getEngine()->getLastSignedDate(); $this->signRequest->setSigned($lastSignedDate); $this->signRequest->setSignedHash($hash); - $this->signRequest->setStatusEnum(\OCA\Libresign\Db\SignRequestStatus::SIGNED); + $this->signRequest->setStatusEnum(\OCA\Libresign\Enum\SignRequestStatus::SIGNED); $this->signRequestMapper->update($this->signRequest); From 3a5558793404ff3e69b202f455b9d9a0aa0dd0f9 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Thu, 11 Dec 2025 11:42:32 -0300 Subject: [PATCH 2/2] refactor: move SignatureFlow enum to dedicated Enum directory Move SignatureFlow from lib/Service/ to lib/Enum/ to centralize all enum definitions in the same location following project structure conventions. Updated namespace from OCA\Libresign\Service to OCA\Libresign\Enum and adjusted all imports and references across: - AdminController (updated FQN references for from() and comparison) - PageController (updated FQN reference) - TemplateLoader (updated FQN reference) - Settings/Admin (updated import statement) - SequentialSigningService (added explicit import) This completes the consolidation of enum types, making the codebase more organized and easier to maintain. Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- lib/Controller/AdminController.php | 4 ++-- lib/Controller/PageController.php | 2 +- lib/{Service => Enum}/SignatureFlow.php | 3 ++- lib/Files/TemplateLoader.php | 2 +- lib/Settings/Admin.php | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) rename lib/{Service => Enum}/SignatureFlow.php (89%) diff --git a/lib/Controller/AdminController.php b/lib/Controller/AdminController.php index 1d6dfadc04..98760b726f 100644 --- a/lib/Controller/AdminController.php +++ b/lib/Controller/AdminController.php @@ -908,7 +908,7 @@ public function footerTemplatePreviewPdf(string $template = '', int $width = 595 #[ApiRoute(verb: 'POST', url: '/api/{apiVersion}/admin/signature-flow/config', requirements: ['apiVersion' => '(v1)'])] public function setSignatureFlowConfig(string $mode): DataResponse { try { - $signatureFlow = \OCA\Libresign\Service\SignatureFlow::from($mode); + $signatureFlow = \OCA\Libresign\Enum\SignatureFlow::from($mode); } catch (\ValueError) { return new DataResponse([ 'error' => $this->l10n->t('Invalid signature flow mode. Use "parallel" or "ordered_numeric".'), @@ -916,7 +916,7 @@ public function setSignatureFlowConfig(string $mode): DataResponse { } try { - if ($signatureFlow === \OCA\Libresign\Service\SignatureFlow::PARALLEL) { + if ($signatureFlow === \OCA\Libresign\Enum\SignatureFlow::PARALLEL) { $this->appConfig->deleteKey(Application::APP_ID, 'signature_flow'); } else { $this->appConfig->setValueString( diff --git a/lib/Controller/PageController.php b/lib/Controller/PageController.php index e78fef645a..143b25c190 100644 --- a/lib/Controller/PageController.php +++ b/lib/Controller/PageController.php @@ -95,7 +95,7 @@ public function index(): TemplateResponse { $this->provideSignerSignatues(); $this->initialState->provideInitialState('identify_methods', $this->identifyMethodService->getIdentifyMethodsSettings()); - $this->initialState->provideInitialState('signature_flow', $this->appConfig->getValueString(Application::APP_ID, 'signature_flow', \OCA\Libresign\Service\SignatureFlow::PARALLEL->value)); + $this->initialState->provideInitialState('signature_flow', $this->appConfig->getValueString(Application::APP_ID, 'signature_flow', \OCA\Libresign\Enum\SignatureFlow::PARALLEL->value)); $this->initialState->provideInitialState('legal_information', $this->appConfig->getValueString(Application::APP_ID, 'legal_information')); Util::addScript(Application::APP_ID, 'libresign-main'); diff --git a/lib/Service/SignatureFlow.php b/lib/Enum/SignatureFlow.php similarity index 89% rename from lib/Service/SignatureFlow.php rename to lib/Enum/SignatureFlow.php index 721b696d32..ba4d99383c 100644 --- a/lib/Service/SignatureFlow.php +++ b/lib/Enum/SignatureFlow.php @@ -1,12 +1,13 @@ initialState->provideInitialState( 'signature_flow', - $this->appConfig->getValueString(Application::APP_ID, 'signature_flow', \OCA\Libresign\Service\SignatureFlow::PARALLEL->value) + $this->appConfig->getValueString(Application::APP_ID, 'signature_flow', \OCA\Libresign\Enum\SignatureFlow::PARALLEL->value) ); try { diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 574fbc6a04..341d6371b2 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -9,6 +9,7 @@ namespace OCA\Libresign\Settings; use OCA\Libresign\AppInfo\Application; +use OCA\Libresign\Enum\SignatureFlow; use OCA\Libresign\Exception\LibresignException; use OCA\Libresign\Handler\CertificateEngine\CertificateEngineFactory; use OCA\Libresign\Service\CertificatePolicyService; @@ -16,7 +17,6 @@ use OCA\Libresign\Service\FooterService; use OCA\Libresign\Service\IdentifyMethodService; use OCA\Libresign\Service\SignatureBackgroundService; -use OCA\Libresign\Service\SignatureFlow; use OCA\Libresign\Service\SignatureTextService; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState;