Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 8d14b34

Browse files
committed
Added clean up of messages
1 parent 6642219 commit 8d14b34

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

src/Helper/BeskedfordelerHelper.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Drupal\Core\Database\Connection;
77
use Drupal\os2forms_digital_post\Exception\InvalidMessage;
88
use Drupal\os2forms_digital_post\Model\Message;
9+
use Drupal\webform\WebformSubmissionInterface;
910
use Psr\Log\LoggerAwareTrait;
1011
use Psr\Log\LoggerInterface;
1112

@@ -73,7 +74,7 @@ public function loadMessage(string $messageUUID): ?Message {
7374
->fields('m')
7475
->condition('message_uuid', $messageUUID)
7576
->execute()
76-
->fetchObject(Message::class) ?: NULL;
77+
->fetchObject(Message::class, []) ?: NULL;
7778
}
7879

7980
/**
@@ -95,6 +96,23 @@ public function addBeskedfordelerMessage(string $messageUUID, string $beskedford
9596
->execute();
9697
}
9798

99+
/**
100+
* Delete messages for submissions.
101+
*
102+
* @param array|WebformSubmissionInterface[] $submissions
103+
* The submissions.
104+
*/
105+
public function deleteMessages(array $submissions) {
106+
$submissionIds = array_map(static function (WebformSubmissionInterface $submission) {
107+
return $submission->id();
108+
}, $submissions);
109+
110+
$this->database
111+
->delete(self::TABLE_NAME)
112+
->condition('submission_id', $submissionIds, 'IN')
113+
->execute();
114+
}
115+
98116
/**
99117
* Implements hook_schema().
100118
*

src/Helper/WebformHelperSF1601.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,4 +359,13 @@ public function processBeskedfordelerData(int $submissionId, array $data) {
359359
}
360360
}
361361

362+
/**
363+
* Proxy for BeskedfordelerHelper::deleteMessages().
364+
*
365+
* @see BeskedfordelerHelper::deleteMessages()
366+
*/
367+
public function deleteMessages(array $webformSubmissions) {
368+
$this->beskedfordelerHelper->deleteMessages($webformSubmissions);
369+
}
370+
362371
}

src/Model/Message.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Message {
4141
*
4242
* @var string
4343
*/
44-
public string $beskedfordelerMessage;
44+
public ?string $beskedfordelerMessage;
4545

4646
/**
4747
* Called when using \PDO::FETCH_CLASS.

src/Plugin/WebformHandler/WebformHandlerSF1601.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,20 @@ public function postSave(WebformSubmissionInterface $webformSubmission, $update
336336
$this->helper->createJob($webformSubmission, $this->configuration);
337337
}
338338

339+
/**
340+
* {@inheritdoc}
341+
*/
342+
public function postDelete(WebformSubmissionInterface $webformSubmission) {
343+
$this->helper->deleteMessages([$webformSubmission]);
344+
}
345+
346+
/**
347+
* {@inheritdoc}
348+
*/
349+
public function postPurge(array $webformSubmissions) {
350+
$this->helper->deleteMessages($webformSubmissions);
351+
}
352+
339353
/**
340354
* Display the invoked plugin method to end user.
341355
*

0 commit comments

Comments
 (0)