diff --git a/app/Api/V1/Controllers/TransactionController.php b/app/Api/V1/Controllers/TransactionController.php index 36f61305d6..f7addd8d0e 100644 --- a/app/Api/V1/Controllers/TransactionController.php +++ b/app/Api/V1/Controllers/TransactionController.php @@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Controllers; use FireflyIII\Api\V1\Requests\TransactionStoreRequest; use FireflyIII\Api\V1\Requests\TransactionUpdateRequest; +use FireflyIII\Events\DestroyedTransactionGroup; use FireflyIII\Events\StoredTransactionGroup; use FireflyIII\Events\UpdatedTransactionGroup; use FireflyIII\Exceptions\DuplicateTransactionException; @@ -145,6 +146,8 @@ class TransactionController extends Controller public function delete(TransactionGroup $transactionGroup): JsonResponse { $this->repository->destroyGroup($transactionGroup); + // trigger just after destruction + event(new DestroyedTransactionGroup($transactionGroup)); return response()->json([], 204); } diff --git a/app/Generator/Webhook/StandardMessageGenerator.php b/app/Generator/Webhook/StandardMessageGenerator.php index d71248b13f..3a6743d6d8 100644 --- a/app/Generator/Webhook/StandardMessageGenerator.php +++ b/app/Generator/Webhook/StandardMessageGenerator.php @@ -41,7 +41,7 @@ use Symfony\Component\HttpFoundation\ParameterBag; */ class StandardMessageGenerator implements MessageGeneratorInterface { - private int $version = 1; + private int $version = 0; private User $user; private Collection $objects; private int $trigger; diff --git a/app/Handlers/Events/DestroyedGroupEventHandler.php b/app/Handlers/Events/DestroyedGroupEventHandler.php new file mode 100644 index 0000000000..0d9a1c599e --- /dev/null +++ b/app/Handlers/Events/DestroyedGroupEventHandler.php @@ -0,0 +1,54 @@ +. + */ + +namespace FireflyIII\Handlers\Events; + + +use FireflyIII\Events\DestroyedTransactionGroup; +use FireflyIII\Events\RequestedSendWebhookMessages; +use FireflyIII\Generator\Webhook\MessageGeneratorInterface; +use FireflyIII\Models\Webhook; +use Illuminate\Support\Collection; +use Log; + +/** + * Class DestroyedGroupEventHandler + */ +class DestroyedGroupEventHandler +{ + /** + * @param DestroyedTransactionGroup $destroyedGroupEvent + */ + public function triggerWebhooks(DestroyedTransactionGroup $destroyedGroupEvent): void + { + Log::debug('DestroyedTransactionGroup:triggerWebhooks'); + $group = $destroyedGroupEvent->transactionGroup; + $user = $group->user; + /** @var MessageGeneratorInterface $engine */ + $engine = app(MessageGeneratorInterface::class); + $engine->setUser($user); + $engine->setObjects(new Collection([$group])); + $engine->setTrigger(Webhook::TRIGGER_DESTROY_TRANSACTION); + $engine->generateMessages(); + + event(new RequestedSendWebhookMessages); + } +} \ No newline at end of file diff --git a/app/Helpers/Webhook/Sha3SignatureGenerator.php b/app/Helpers/Webhook/Sha3SignatureGenerator.php index 8c157d8f1e..2540f5b21e 100644 --- a/app/Helpers/Webhook/Sha3SignatureGenerator.php +++ b/app/Helpers/Webhook/Sha3SignatureGenerator.php @@ -29,7 +29,7 @@ use JsonException; */ class Sha3SignatureGenerator implements SignatureGeneratorInterface { - private int $version = 1; + private int $version = 0; /** * @inheritDoc