1
0
Fork 0
owl-admin-starter/app/Http/Controllers/Api/BaseController.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();
}
}