refactor: use DTO and terminate middleware for better performance
- Add PageviewData readonly DTO class for type safety - Update AnalyticsClient to accept PageviewData instead of array - Move analytics sending to terminate() method (runs after response sent) - Update all tests for new DTO pattern
This commit is contained in:
6 files changed
+154
-116
No files matched your search
@@ -25,9 +25,13 @@ function createMiddleware(): AnalyticsMiddleware
|
||||
|
||||
function handleRequest(AnalyticsMiddleware $middleware, Request $request): Response
|
||||
{
|
||||
return $middleware->handle($request, function ($req) {
|
||||
$response = $middleware->handle($request, function ($req) {
|
||||
return new Response('Test content');
|
||||
});
|
||||
|
||||
$middleware->terminate($request, $response);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
it('captures analytics data for web requests', function () {
|
||||
@@ -45,7 +49,7 @@ it('captures analytics data for web requests', function () {
|
||||
$data = $request->data();
|
||||
|
||||
return $request->url() === 'https://analytics.mattitja.cloud/api/send' &&
|
||||
$data['k'] === 'test-site-key' &&
|
||||
$data['k'] === 'testsiteky' &&
|
||||
$data['u'] === 'https://example.com/test' &&
|
||||
$data['r'] === 'https://google.com' &&
|
||||
$data['ip'] === '192.168.1.1' &&
|
||||
|
||||
Reference in new issue
Block a user