Skip to content

Commit

Permalink
Merge pull request #1 from HatemElsaid/main
Browse files Browse the repository at this point in the history
allow passing data in JsonResource in success method
  • Loading branch information
MoamenEltouny committed Sep 26, 2023
2 parents 8b5401d + 93a0c58 commit 410c3bc
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 25 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -15,7 +15,7 @@
}
],
"require": {
"php": ">=8.0",
"php": ">=8.1",
"laravel/framework": ">=8.0"
},
"config": {
Expand Down
58 changes: 34 additions & 24 deletions src/Json.php
Expand Up @@ -2,26 +2,36 @@

namespace Pharaonic\Laravel\Jsonable;

use Illuminate\Http\Resources\Json\JsonResource;
use Pharaonic\Laravel\Jsonable\Exceptions\Exception;

/**
* Json Responser
*
*
* @method \Illuminate\Http\JsonResponse success
* @method \Illuminate\Http\JsonResponse errors
* @method \Illuminate\Http\JsonResponse exception
*
*
* @author Moamen Eltouny
* @author Hatem Elsaid
* @package pharoanic/laravel-jsonable
* @version 0.0.7
*/
class Json
{
public function success(array $data, ?string $message = null, ?array $extra = [], int $status = 200, array $headers = [])
public function success($data, ?string $message = null, ?array $extra = [], int $status = 200, array $headers = [])
{
if ($data instanceof JsonResource) {
$data = $data->toArray(request());
} elseif (!is_array($data)) {
throw new \Exception('You have to pass $data as JsonResource or Array.');
}

return response()->json([
'success' => true,
'message' => $message,
'data' => $data
] + ($extra ?? []), $status, $headers);
'success' => true,
'message' => $message,
'data' => $data
] + ($extra ?? []), $status, $headers);
}

public function errors(array $errors, ?string $code, ?string $message = null, ?array $extra = [], int $status = 400, array $headers = [])
Expand All @@ -33,7 +43,7 @@ public function errors(array $errors, ?string $code, ?string $message = null, ?a
$errs = $errs[0];

return (object)[
'key' => $key,
'key' => $key,
'value' => $errs
];
}, array_keys($errors), array_values($errors)));
Expand All @@ -45,26 +55,26 @@ public function errors(array $errors, ?string $code, ?string $message = null, ?a

// RESPONES
return response()->json([
'success' => false,
'code' => $code,
'message' => $message,
'errors' => $errors
] + ($extra ?? []), $status, $headers);
'success' => false,
'code' => $code,
'message' => $message,
'errors' => $errors
] + ($extra ?? []), $status, $headers);
}

public function exception(\Throwable $exception, ?string $code = null, ?string $message = null, ?array $extra = [], int $status = 400, array $headers = [])
{
return response()->json([
'success' => false,
'code' => $code ?? $exception->getCode() ?? null,
'message' => $message ?? $exception->getMessage(),
'data' => (object) (app()->environment('local', 'staging') ?
[
'line' => $exception->getLine(),
'file' => $exception->getFile(),
] + (config('Pharaonic.jsonable.tracing', false) ? ['trace' => $exception->getTrace()] : [])
: []
)
] + ($extra ?? []), $status, $headers);
'success' => false,
'code' => $code ?? $exception->getCode() ?? null,
'message' => $message ?? $exception->getMessage(),
'data' => (object)(app()->environment('local', 'staging') ?
[
'line' => $exception->getLine(),
'file' => $exception->getFile(),
] + (config('Pharaonic.jsonable.tracing', false) ? ['trace' => $exception->getTrace()] : [])
: []
)
] + ($extra ?? []), $status, $headers);
}
}

0 comments on commit 410c3bc

Please sign in to comment.