From a0708e526ca768332ab168e18b81ed67c3773ad3 Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Wed, 18 Dec 2024 15:56:56 +0100 Subject: [PATCH 1/6] Normalized white space in filenames --- CHANGELOG.md | 8 ++++- drush.services.yml | 7 ++++ src/Commands/ArchiveCommands.php | 60 ++++++++++++++++++++++++++++++++ src/Helper/ArchiveHelper.php | 5 ++- 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 drush.services.yml create mode 100644 src/Commands/ArchiveCommands.php diff --git a/CHANGELOG.md b/CHANGELOG.md index cc0fc3f..37cc89b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ about writing changes to this log. ## [Unreleased] +## [1.4.0] 18.12.2024 + +* Normalized white space in filename. +* Added command for archiving submission. + ## [1.3.1] 09.12.2024 * Added webform ID to audit logging messages. @@ -51,7 +56,8 @@ about writing changes to this log. ## [1.0.0] 29.03.2023 -[Unreleased]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.1...HEAD +[Unreleased]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.4.0...HEAD +[1.4.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.1...1.4.0 [1.3.1]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.3.0...1.3.1 [1.3.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.2.0...1.3.0 [1.2.0]: https://github.com/OS2Forms/os2forms_get_organized/compare/1.1.5...1.2.0 diff --git a/drush.services.yml b/drush.services.yml new file mode 100644 index 0000000..9114ab0 --- /dev/null +++ b/drush.services.yml @@ -0,0 +1,7 @@ +services: + drush_command_example.commands: + class: \Drupal\os2forms_get_organized\Commands\ArchiveCommands + tags: + - { name: drush.command } + arguments: + - '@Drupal\os2forms_get_organized\Helper\ArchiveHelper' diff --git a/src/Commands/ArchiveCommands.php b/src/Commands/ArchiveCommands.php new file mode 100644 index 0000000..d8fc30a --- /dev/null +++ b/src/Commands/ArchiveCommands.php @@ -0,0 +1,60 @@ +input(), $this->output()); + + /** @var \Drupal\webform\WebformSubmissionInterface $submission */ + $submission = WebformSubmission::load($submissionId); + + if (!$submission) { + $io->error(sprintf('Webform submission with id %s could not be found.', $submissionId)); + + return; + } + + try { + $handler = $submission->getWebform()->getHandler($handlerId); + } + catch (\Exception $e) { + $io->error($e->getMessage()); + + return; + } + + $handlerConfig = $handler->getConfiguration(); + + $this->archiveHelper->archive($submissionId, $handlerConfig['settings']); + + $io->success(sprintf('Successfully archived webform submission with id %s ', $submissionId)); + } + +} diff --git a/src/Helper/ArchiveHelper.php b/src/Helper/ArchiveHelper.php index 7f4b644..4564a57 100644 --- a/src/Helper/ArchiveHelper.php +++ b/src/Helper/ArchiveHelper.php @@ -489,7 +489,10 @@ private function computeGetOrganizedFilename(string $filename, WebformSubmission $position = strrpos($filename, '.' . $fileExtension); // Inject the webform label and submission number at found position. - return substr_replace($filename, '-' . $webformLabel . '-' . $submissionNumber, $position, 0); + $filename = substr_replace($filename, '-' . $webformLabel . '-' . $submissionNumber, $position, 0); + + // Normalize white space. + return preg_replace('/[[:space:]]/', ' ', $filename); } /** From 6d163b7467cf993d18343619ddd6c995ec5f15f7 Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Wed, 18 Dec 2024 16:25:08 +0100 Subject: [PATCH 2/6] Upgraded actions php version --- .github/workflows/pr.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index f49785a..b1b2e5a 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master @@ -55,7 +55,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master @@ -88,7 +88,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-versions: [ '8.1' ] + php-versions: [ '8.3' ] dependency-version: [ prefer-lowest, prefer-stable ] steps: - uses: actions/checkout@master From be32d63961155cb430eebb9d02c27c8e03f423dd Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Wed, 18 Dec 2024 16:27:39 +0100 Subject: [PATCH 3/6] Cleanup --- src/Commands/ArchiveCommands.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Commands/ArchiveCommands.php b/src/Commands/ArchiveCommands.php index d8fc30a..a5e4cc0 100644 --- a/src/Commands/ArchiveCommands.php +++ b/src/Commands/ArchiveCommands.php @@ -28,11 +28,11 @@ public function __construct( * * @command os2forms:get-organized:archive */ - public function archive(string $submissionId, string $handlerId) { + public function archive(string $submissionId, string $handlerId): void { $io = new SymfonyStyle($this->input(), $this->output()); - /** @var \Drupal\webform\WebformSubmissionInterface $submission */ + /** @var \Drupal\webform\WebformSubmissionInterface|null $submission */ $submission = WebformSubmission::load($submissionId); if (!$submission) { From ff4d20b62009bbad3cfa31323a9c8d9610cab772 Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Wed, 18 Dec 2024 16:33:43 +0100 Subject: [PATCH 4/6] Update command docs --- src/Commands/ArchiveCommands.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Commands/ArchiveCommands.php b/src/Commands/ArchiveCommands.php index a5e4cc0..8606fca 100644 --- a/src/Commands/ArchiveCommands.php +++ b/src/Commands/ArchiveCommands.php @@ -8,7 +8,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; /** - * Drush command file. + * OS2Forms archive command. */ class ArchiveCommands extends DrushCommands { @@ -19,7 +19,7 @@ public function __construct( } /** - * A custom Drush command to displays the given text. + * A Drush command for archiving submission in GetOrganized. * * @param string $submissionId * The submission id. From a384e2a3467e3135a04bcb688ce0304dbcbbe95b Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Thu, 19 Dec 2024 12:40:49 +0100 Subject: [PATCH 5/6] Trimmed document filename --- src/Helper/ArchiveHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Helper/ArchiveHelper.php b/src/Helper/ArchiveHelper.php index 4564a57..693cbe8 100644 --- a/src/Helper/ArchiveHelper.php +++ b/src/Helper/ArchiveHelper.php @@ -492,7 +492,7 @@ private function computeGetOrganizedFilename(string $filename, WebformSubmission $filename = substr_replace($filename, '-' . $webformLabel . '-' . $submissionNumber, $position, 0); // Normalize white space. - return preg_replace('/[[:space:]]/', ' ', $filename); + return preg_replace('/[[:space:]]/', ' ', trim($filename)); } /** From 53c7d8e9b3dafb4e1c8b46cc14c1050a031a4a2c Mon Sep 17 00:00:00 2001 From: jekuaitk Date: Thu, 19 Dec 2024 13:27:18 +0100 Subject: [PATCH 6/6] Upgraded to latest getorganized api client --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2e29561..849958c 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ } ], "require": { - "itk-dev/getorganized-api-client-php": "^1.2", + "itk-dev/getorganized-api-client-php": "^1.2.2", "drupal/webform": "^6.2", "drupal/advancedqueue": "^1.2", "symfony/options-resolver": "^5.4 || ^6.0",