Skip to content

Commit 5424620

Browse files
committed
Make it possible to exclude "full_text" from logs API response
1 parent a4d0536 commit 5424620

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/Http/Resources/LogResource.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ class LogResource extends JsonResource
1414
public function toArray($request): array
1515
{
1616
$level = $this->getLevel();
17+
$excludeFullText = $request->boolean('exclude_full_text', false);
1718

18-
return [
19+
$data = [
1920
'index' => $this->index,
2021
'file_identifier' => $this->fileIdentifier,
2122
'file_position' => $this->filePosition,
@@ -30,8 +31,13 @@ public function toArray($request): array
3031
'context' => $this->context,
3132
'extra' => $this->extra,
3233

33-
'full_text' => $this->getOriginalText(),
3434
'url' => $this->url(),
3535
];
36+
37+
if (! $excludeFullText) {
38+
$data['full_text'] = $this->getOriginalText();
39+
}
40+
41+
return $data;
3642
}
3743
}

tests/Feature/LogsControllerTest.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,30 @@
6161
]));
6262
expect($response->json('logs'))->toHaveCount(4);
6363
});
64+
65+
test('logs include full_text property by default', function () {
66+
$logEntries = [
67+
makeLaravelLogEntry(message: 'Test message'),
68+
];
69+
$file = generateLogFile('log_with_full_text.log', implode(PHP_EOL, $logEntries));
70+
71+
$response = getJson(route('log-viewer.logs', ['file' => $file->identifier]));
72+
73+
expect($response->json('logs'))->toHaveCount(1);
74+
expect($response->json('logs.0'))->toHaveKey('full_text');
75+
});
76+
77+
test('logs can exclude full_text property when requested', function () {
78+
$logEntries = [
79+
makeLaravelLogEntry(message: 'Test message'),
80+
];
81+
$file = generateLogFile('log_without_full_text.log', implode(PHP_EOL, $logEntries));
82+
83+
$response = getJson(route('log-viewer.logs', [
84+
'file' => $file->identifier,
85+
'exclude_full_text' => true,
86+
]));
87+
88+
expect($response->json('logs'))->toHaveCount(1);
89+
expect($response->json('logs.0'))->not->toHaveKey('full_text');
90+
});

0 commit comments

Comments
 (0)