Lines
100.00%
9 / 9
Methods
100.00%
5 / 5
Classes
100.00%
1 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| createJsonResponse | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| createJsonEnvelopeResponse | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 1 | ||
| createRedirectResponse | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 1 | ||
| createEventStreamResponse | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 1 | ||
| createStreamResponse | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 1 | ||
| 20 | final class LucentResponseFactory | |
| 21 | { | |
| 22 | /** | |
| 23 | * Create a JSON response. | |
| 24 | * | |
| 25 | * @param mixed $data Data to JSON-encode as the body | |
| 26 | * @param int $status HTTP status code | |
| 27 | * @return ResponseInterface | |
| 28 | */ | |
| 29 | public function createJsonResponse(mixed $data, int $status = 200): ResponseInterface | |
| 30 | { | |
| 31 | return Response::json($data, $status); | |
| 32 | } | |
| 33 | ||
| 34 | /** | |
| 35 | * Create a JSON response with the legacy {message, outcome, status, content} envelope. | |
| 36 | * | |
| 37 | * @param array $content The response content | |
| 38 | * @param string $message The response message | |
| 39 | * @param bool $outcome Whether the request succeeded | |
| 40 | * @param int $status HTTP status code | |
| 41 | * @return ResponseInterface | |
| 42 | */ | |
| 43 | public function createJsonEnvelopeResponse( | |
| 44 | array $content = [], | |
| 45 | string $message = 'Request successfully executed.', | |
| 46 | bool $outcome = true, | |
| 47 | int $status = 200 | |
| 48 | ): ResponseInterface { | |
| 49 | $response = new Response(); | |
| 50 | return $response->withJsonEnvelope($content, $message, $outcome, $status); | |
| 51 | } | |
| 52 | ||
| 53 | /** | |
| 54 | * Create a redirect response. | |
| 55 | * | |
| 56 | * @param string $url The URL to redirect to | |
| 57 | * @param int $status HTTP status code (default 302) | |
| 58 | * @return ResponseInterface | |
| 59 | */ | |
| 60 | public function createRedirectResponse(string $url, int $status = 302): ResponseInterface | |
| 61 | { | |
| 62 | $response = new Response(); | |
| 63 | return $response->withRedirect($url, $status); | |
| 64 | } | |
| 65 | ||
| 66 | /** | |
| 67 | * Create an SSE (Server-Sent Events) response. | |
| 68 | * | |
| 69 | * @param Traversable $source A lazy iterable (Generator, Iterator, or | |
| 70 | * IteratorAggregate e.g. LazyCollection)that | |
| 71 | * yields SSE event payloads | |
| 72 | * @return ResponseInterface | |
| 73 | */ | |
| 74 | public function createEventStreamResponse(Traversable $source): ResponseInterface | |
| 75 | { | |
| 76 | $response = new Response(); | |
| 77 | return $response->withEventStream($source); | |
| 78 | } | |
| 79 | ||
| 80 | /** | |
| 81 | * Create a generic streaming response. | |
| 82 | * | |
| 83 | * @param callable|Traversable $source A callable or Traversable/Generator | |
| 84 | * @param array $headers Additional headers | |
| 85 | * @return ResponseInterface | |
| 86 | */ | |
| 87 | public function createStreamResponse(callable|Traversable $source, array $headers = []): ResponseInterface | |
| 88 | { | |
| 89 | $response = new Response(); | |
| 90 | return $response->withStream($source, $headers); | |
| 91 | } | |
| 92 | } |