Skip to content

Commit d1f03d7

Browse files
committed
Adds HTTP dumps example
1 parent 1706fb5 commit d1f03d7

File tree

4 files changed

+95
-4
lines changed

4 files changed

+95
-4
lines changed

app/Http/Controllers/CallAction.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use App\Modules\Smtp\Common as SmtpActions;
1313
use App\Modules\VarDump\Common as VarDumpActions;
1414
use App\Modules\Inspector\Common as InspectorActions;
15+
use App\Modules\HttpDump\Common as HttDumpActions;
1516
use App\RandomPhraseGenerator;
1617
use Illuminate\Foundation\Testing\WithFaker;
1718
use Illuminate\Http\Request;
@@ -27,6 +28,7 @@ class CallAction extends Controller
2728
InspectorActions,
2829
InspectorActions,
2930
ProfilerActions,
31+
HttDumpActions,
3032
WithFaker;
3133

3234
private array $setUpMap = [
@@ -36,6 +38,7 @@ class CallAction extends Controller
3638
'monolog:' => 'setUpSocketMonolog',
3739
'var_dump:' => 'setUpVarDumper',
3840
'inspector:' => 'setUpInspector',
41+
'http:' => 'setUpHttp',
3942
];
4043

4144
private array $replaceMap = [

app/Modules/HttpDump/Common.php

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Modules\HttpDump;
6+
7+
use App\RandomPhraseGenerator;
8+
use Illuminate\Http\Client\PendingRequest;
9+
use Illuminate\Support\Facades\Http;
10+
11+
trait Common
12+
{
13+
protected string $url;
14+
private PendingRequest $httpClient;
15+
16+
public function setUpHttp(): void
17+
{
18+
$this->url = config('services.http_dump.endpoint');
19+
20+
$domain = parse_url($this->url, PHP_URL_HOST);
21+
$this->httpClient = Http::withHeaders([
22+
'X-Header' => 'Buggregator',
23+
])
24+
->withCookies([
25+
'some-token' => 'some-value',
26+
], $domain)
27+
->withUserAgent('Buggregator');
28+
}
29+
30+
/** @test */
31+
public function httpGet(RandomPhraseGenerator $generator): void
32+
{
33+
$this->httpClient->get(\sprintf('%s/some-path', $this->url), [
34+
'message' => $generator->generate('Buggregator'),
35+
]);
36+
}
37+
38+
/** @test */
39+
public function httpPost(RandomPhraseGenerator $generator): void
40+
{
41+
$this->httpClient
42+
->attach([
43+
['file', fopen(app()->resourcePath('images/logo.svg'), 'r')],
44+
['message', $generator->generate('Buggregator'),],
45+
])
46+
->post(\sprintf('%s/some-path', $this->url));
47+
}
48+
49+
/** @test */
50+
public function httpPut(RandomPhraseGenerator $generator): void
51+
{
52+
$this->httpClient->put(\sprintf('%s/some-path', $this->url), [
53+
'message' => $generator->generate('Buggregator'),
54+
]);
55+
}
56+
57+
/** @test */
58+
public function httpPath(RandomPhraseGenerator $generator): void
59+
{
60+
$this->httpClient->patch(\sprintf('%s/some-path', $this->url), [
61+
'message' => $generator->generate('Buggregator'),
62+
]);
63+
}
64+
65+
/** @test */
66+
public function httpDelete(RandomPhraseGenerator $generator): void
67+
{
68+
$this->httpClient->delete(\sprintf('%s/some-path', $this->url), [
69+
'message' => $generator->generate('Buggregator'),
70+
]);
71+
}
72+
}

config/services.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,7 @@
3434
'endpoint' => env('PROFILER_ENDPOINT', 'http://127.0.0.1/api/profiler/store'),
3535
],
3636

37+
'http_dump' => [
38+
'endpoint' => env('HTTP_DUMP_ENDPOINT', 'http://http-dump@buggregator-demo:8000'),
39+
],
3740
];

routes/web.php

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
],
9494
],
9595
'docs' => 'https://docs.buggregator.dev/config/sentry.html',
96-
'vendor' => 'https://docs.sentry.io/platforms/php/'
96+
'vendor' => 'https://docs.sentry.io/platforms/php/',
9797
],
9898
'monolog' => [
9999
'title' => 'Buggregator can receive logs from monolog/monolog package.',
@@ -112,7 +112,7 @@
112112
],
113113
],
114114
'docs' => 'https://docs.buggregator.dev/config/monolog.html',
115-
'vendor' => 'https://seldaek.github.io/monolog/'
115+
'vendor' => 'https://seldaek.github.io/monolog/',
116116
],
117117
'smtp' => [
118118
'title' => 'SMTP Email Testing',
@@ -139,7 +139,7 @@
139139
],
140140
],
141141
'docs' => 'https://docs.buggregator.dev/config/var-dumper.html',
142-
'vendor' => 'https://symfony.com/doc/current/components/var_dumper.html'
142+
'vendor' => 'https://symfony.com/doc/current/components/var_dumper.html',
143143
],
144144
'inspector' => [
145145
'title' => 'It can be used to receive Inspector reports from your application.',
@@ -151,7 +151,20 @@
151151
],
152152
],
153153
'docs' => 'https://docs.buggregator.dev/config/inspector.html',
154-
'vendor' => 'https://inspector.dev/'
154+
'vendor' => 'https://inspector.dev/',
155+
],
156+
'http' => [
157+
'title' => 'Http dumps',
158+
'description' => '-',
159+
'events' => [
160+
'common' => [
161+
'get',
162+
'post',
163+
'put',
164+
'patch',
165+
'delete',
166+
],
167+
],
155168
],
156169
];
157170

0 commit comments

Comments
 (0)