RESAZIP-PC\resaz

add common daitoreponse feature

......@@ -8,6 +8,7 @@
}
},
"require": {
"php": "^7.3 || ^8.0"
"php": "^7.3 || ^8.0",
"laravel/framework": "^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0"
}
}
......
This diff could not be displayed because it is too large.
<?php
namespace Daito\Lib;
use Daito\Lib\Traits\HasDaitoResponse;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
/**
* Base controller for Laravel projects.
*/
class DaitoController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, HasDaitoResponse, ValidatesRequests;
}
<?php
namespace Daito\Lib;
use RuntimeException;
class DaitoResponse
{
/**
* Build a successful response payload.
*/
public static function success($message = 'Success', array $arrData = array(), $statusCode = 200)
{
return self::make(true, $message, $arrData, $statusCode);
}
/**
* Build a failed response payload.
*/
public static function fail($message = 'Failed', array $arrData = array(), $statusCode = 400)
{
return self::make(false, $message, $arrData, $statusCode);
}
/**
* Build a response payload with a stable structure for all APIs.
*/
public static function make($isSuccess, $message, array $arrData = array(), $statusCode = 200)
{
return array(
'success' => $isSuccess ? 1 : 0,
'message' => (string) $message,
'data' => $arrData,
'status_code' => (int) $statusCode,
);
}
/**
* Convert payload array to JSON.
*/
public static function toJson(array $arrPayload)
{
$json = json_encode($arrPayload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
if ($json === false) {
throw new RuntimeException('Can not encode response payload to JSON.');
}
return $json;
}
/**
* Create success payload and return JSON string.
*/
public static function successJson($message = 'Success', array $arrData = array(), $statusCode = 200)
{
return self::toJson(self::success($message, $arrData, $statusCode));
}
/**
* Create failed payload and return JSON string.
*/
public static function failJson($message = 'Failed', array $arrData = array(), $statusCode = 400)
{
return self::toJson(self::fail($message, $arrData, $statusCode));
}
/**
* Build a validation failed payload with HTTP 422 default.
*/
public static function validateFail(array $arrErrors, $message = 'Validation failed', $statusCode = 422)
{
return self::fail(
$message,
array(
'errors' => $arrErrors,
),
$statusCode
);
}
/**
* Build a validation failed payload and return JSON string.
*/
public static function validateFailJson(array $arrErrors, $message = 'Validation failed', $statusCode = 422)
{
return self::toJson(self::validateFail($arrErrors, $message, $statusCode));
}
}
<?php
namespace Daito\Lib\Traits;
use Daito\Lib\DaitoResponse;
trait HasDaitoResponse
{
protected function successResponse($message = 'Success', array $arrData = array(), $statusCode = 200)
{
return DaitoResponse::success($message, $arrData, $statusCode);
}
protected function failResponse($message = 'Failed', array $arrData = array(), $statusCode = 400)
{
return DaitoResponse::fail($message, $arrData, $statusCode);
}
protected function validateFailResponse(array $arrErrors, $message = 'Validation failed', $statusCode = 422)
{
return DaitoResponse::validateFail($arrErrors, $message, $statusCode);
}
protected function successResponseJson($message = 'Success', array $arrData = array(), $statusCode = 200)
{
return DaitoResponse::successJson($message, $arrData, $statusCode);
}
protected function failResponseJson($message = 'Failed', array $arrData = array(), $statusCode = 400)
{
return DaitoResponse::failJson($message, $arrData, $statusCode);
}
protected function validateFailResponseJson(array $arrErrors, $message = 'Validation failed', $statusCode = 422)
{
return DaitoResponse::validateFailJson($arrErrors, $message, $statusCode);
}
protected function jsonSuccess($message = 'Success', array $arrData = array(), $statusCode = 200, array $arrHeaders = array())
{
$arrPayload = $this->successResponse($message, $arrData, $statusCode);
return response()->json($arrPayload, $arrPayload['status_code'], $arrHeaders);
}
protected function jsonFail($message = 'Failed', array $arrData = array(), $statusCode = 400, array $arrHeaders = array())
{
$arrPayload = $this->failResponse($message, $arrData, $statusCode);
return response()->json($arrPayload, $arrPayload['status_code'], $arrHeaders);
}
protected function jsonValidateFail(array $arrErrors, $message = 'Validation failed', $statusCode = 422, array $arrHeaders = array())
{
$arrPayload = $this->validateFailResponse($arrErrors, $message, $statusCode);
return response()->json($arrPayload, $arrPayload['status_code'], $arrHeaders);
}
}