From c309c05036f5cc9ebedd2d6a96aa11c8c4e9b9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Ca=C5=82ka?= Date: Tue, 28 Nov 2023 17:54:36 +0100 Subject: [PATCH] feat: purge users.index on post like --- extend.php | 4 +++ .../FlarumLikesPurgeMiddleware.php | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/Compatibility/FlarumLikes/FlarumLikesPurgeMiddleware.php diff --git a/extend.php b/extend.php index 52966fa..7b1b03a 100644 --- a/extend.php +++ b/extend.php @@ -14,6 +14,7 @@ use ACPL\FlarumCache\Api\Controller\LSCacheCsrfResponseController; use ACPL\FlarumCache\Api\Controller\PurgeLSCacheController; use ACPL\FlarumCache\Command\LSCacheClearCommand; +use ACPL\FlarumCache\Compatibility\FlarumLikes\FlarumLikesPurgeMiddleware; use ACPL\FlarumCache\Compatibility\FlarumTags\FlarumTagsPurgeMiddleware; use ACPL\FlarumCache\Compatibility\FofMasquerade\Middleware as FofMasqueradeMiddleware; use ACPL\FlarumCache\Listener\ClearingCacheListener; @@ -76,6 +77,9 @@ ->whenExtensionEnabled('flarum-tags', [ (new Extend\Middleware('api'))->add(FlarumTagsPurgeMiddleware::class), ]) + ->whenExtensionEnabled('flarum-likes', [ + (new Extend\Middleware('api'))->add(FlarumLikesPurgeMiddleware::class), + ]) ->whenExtensionEnabled('fof-masquerade', [ (new Extend\Middleware('api'))->add(FofMasqueradeMiddleware::class), ]) diff --git a/src/Compatibility/FlarumLikes/FlarumLikesPurgeMiddleware.php b/src/Compatibility/FlarumLikes/FlarumLikesPurgeMiddleware.php new file mode 100644 index 0000000..1d5f78d --- /dev/null +++ b/src/Compatibility/FlarumLikes/FlarumLikesPurgeMiddleware.php @@ -0,0 +1,31 @@ +currentRouteName !== 'posts.update') { + return $response; + } + + $requestBody = $request->getParsedBody(); + + if (! Arr::has($requestBody, 'data.attributes.isLiked')) { + return $response; + } + + return $this->addPurgeParamsToResponse($response, ['users.index']); + } +}