44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Pagination\LengthAwarePaginator;
|
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Models\User;
|
|
|
|
class BaseController extends Controller
|
|
{
|
|
public function json($data, $code = Response::HTTP_OK, $message = '', $additional = [])
|
|
{
|
|
$result = ['code' => $code, 'data' => $data, 'message' => $message];
|
|
if ($data instanceof AnonymousResourceCollection) {
|
|
$data = $data->resource;
|
|
}
|
|
if ($data instanceof LengthAwarePaginator) {
|
|
$result['data'] = $data->items();
|
|
$additional['meta'] = ['total' => $data->total()];
|
|
}
|
|
$result = array_merge($result, $additional);
|
|
return response()->json($result);
|
|
}
|
|
|
|
public function success($data = null, $message = '')
|
|
{
|
|
return $this->json($data, Response::HTTP_OK, $message);
|
|
}
|
|
|
|
public function error($message = '', $code = Response::HTTP_BAD_REQUEST, $data = null)
|
|
{
|
|
return $this->json($data, $code, $message);
|
|
}
|
|
|
|
public function user(): User
|
|
{
|
|
return Auth::guard('api')->user();
|
|
}
|
|
}
|