| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Libs;
- use React\Http\Message\Response;
- /**
- * Formato padrão de resposta da API.
- *
- * Toda resposta enviada ao frontend deve seguir esta estrutura:
- *
- * {
- * "status": "ok" | "failed",
- * "code": "S_OK" | "E_VALIDATE" | ...,
- * "message": "mensagem legível",
- * "data": { ... } // presente apenas quando houver dados
- * }
- *
- * Qualquer informação adicional retornada ao frontend deve ficar sempre dentro de "data".
- */
- final class Payload
- {
- /**
- * Monta o array padrão de resposta. "data" só é incluído quando não está vazio.
- */
- public static function build(string $status, string $code, string $message, $data = []): array
- {
- $response = [
- 'status' => $status,
- 'code' => $code,
- 'message' => $message,
- ];
- if (!empty($data)) {
- $response['data'] = $data;
- }
- return $response;
- }
- /**
- * Monta a resposta padrão já como Response JSON pronta para retorno no controller.
- */
- public static function json(string $status, string $code, string $message, $data = [], int $httpStatus = 200): Response
- {
- return Response::json(self::build($status, $code, $message, $data))->withStatus($httpStatus);
- }
- }
|