Skip to content

Commit 7330a99

Browse files
committed
add deconstruct/reconstruct Request methods
1 parent d1e7e3e commit 7330a99

File tree

3 files changed

+42
-14
lines changed

3 files changed

+42
-14
lines changed

routes/api.php

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
<?php
22

3-
use Illuminate\Http\Request;
3+
use Mshule\LaravelPipes\Request;
44
use Mshule\LaravelPipes\Facades\Pipe;
5+
use Illuminate\Http\Request as HttpRequest;
56
use Mshule\LaravelPipes\Jobs\ExecutePipeRequest;
67

7-
Route::post(config('pipes.incoming_request_path'), function (Request $request) {
8+
Route::post(config('pipes.incoming_request_path'), function (HttpRequest $request) {
89
ExecutePipeRequest::dispatch(
9-
$request->query(),
10-
$request->post(),
11-
$request->input(),
12-
$request->cookie(),
13-
$request->file(),
14-
$request->server(),
15-
$request->getContent()
10+
...Request::destruct($request)
1611
);
1712

1813
return Pipe::response($request);

src/Jobs/ExecutePipeRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function __construct(...$data)
3737
public function handle()
3838
{
3939
$kernel = resolve(Kernel::class);
40-
$request = new Request(...$this->data);
40+
$request = Request::reconstruct($this->data);
4141

4242
event(new IncomingPipeRequest($request));
4343

src/Request.php

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,38 @@ class Request extends HttpRequest
1414
*/
1515
protected $pipeResolver;
1616

17+
/**
18+
* Destruct a request to use queable instances.
19+
*
20+
* @param HttpRequest $request
21+
*
22+
* @return array
23+
*/
24+
public static function destruct(HttpRequest $request)
25+
{
26+
return [
27+
$request->query(),
28+
$request->post(),
29+
$request->input(),
30+
$request->cookie(),
31+
$request->file(),
32+
$request->server(),
33+
$request->getContent(),
34+
];
35+
}
36+
37+
/**
38+
* Reconstruct request from array.
39+
*
40+
* @param array $data
41+
*
42+
* @return self
43+
*/
44+
public static function reconstruct($data)
45+
{
46+
return new self(...$data);
47+
}
48+
1749
/**
1850
* Get the pipe resolver callback.
1951
*
@@ -22,14 +54,14 @@ class Request extends HttpRequest
2254
public function getPipeResolver()
2355
{
2456
return $this->pipeResolver ?: function () {
25-
//
2657
};
2758
}
2859

2960
/**
3061
* Set the Pipe resolver callback.
3162
*
32-
* @param \Closure $callback
63+
* @param \Closure $callback
64+
*
3365
* @return $this
3466
*/
3567
public function setPipeResolver(Closure $callback)
@@ -42,8 +74,9 @@ public function setPipeResolver(Closure $callback)
4274
/**
4375
* Get the pipe handling the request.
4476
*
45-
* @param string|null $param
46-
* @param mixed $default
77+
* @param string|null $param
78+
* @param mixed $default
79+
*
4780
* @return \Mshule\LaravelPipes\Pipe|object|string
4881
*/
4982
public function pipe($param = null, $default = null)

0 commit comments

Comments
 (0)