优化 代码
This commit is contained in:
parent
358c54b0f0
commit
86da37fe19
@ -2,32 +2,48 @@
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
|
||||
trait ApiResponse
|
||||
{
|
||||
// RESTful API response
|
||||
public function remoteResponse($response, $status = 200)
|
||||
public function moduleResponse($response, int $status = 200): JsonResponse
|
||||
{
|
||||
return response()->json($response, $status)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
||||
if (isset($response['data'])) {
|
||||
$response = $response['data'];
|
||||
}
|
||||
|
||||
return match ($status) {
|
||||
200 => $this->success($response),
|
||||
201 => $this->created($response),
|
||||
204 => $this->noContent(),
|
||||
400 => $this->badRequest(),
|
||||
401 => $this->serviceUnavailable(),
|
||||
403 => $this->forbidden(),
|
||||
404 => $this->notFound($response),
|
||||
405 => $this->methodNotAllowed(),
|
||||
429 => $this->tooManyRequests(),
|
||||
500 => $this->serverError(),
|
||||
|
||||
default => response()->json($response['data'], $status),
|
||||
};
|
||||
}
|
||||
|
||||
public function notFound($message = 'Not found')
|
||||
public function notFound($message = 'Not found'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 404);
|
||||
}
|
||||
|
||||
// success
|
||||
|
||||
public function error($message = '', $code = 400)
|
||||
public function error($message = '', $code = 400): JsonResponse
|
||||
{
|
||||
return $this->apiResponse($message, $code);
|
||||
}
|
||||
|
||||
// error
|
||||
|
||||
public function apiResponse($data = [], $status = 200)
|
||||
public function apiResponse($data = [], $status = 200): JsonResponse
|
||||
{
|
||||
// if data is paginated, return paginated data
|
||||
if ($data instanceof \Illuminate\Pagination\Paginator) {
|
||||
if ($data instanceof Paginator) {
|
||||
$data = $data->toArray();
|
||||
$data['data'] = $data['data'] ?? [];
|
||||
$data['meta'] = [
|
||||
@ -42,6 +58,7 @@ public function apiResponse($data = [], $status = 200)
|
||||
'data' => $data,
|
||||
];
|
||||
}
|
||||
|
||||
$data['status'] = $status;
|
||||
|
||||
if ($status >= 200 && $status <= 299) {
|
||||
@ -53,111 +70,104 @@ public function apiResponse($data = [], $status = 200)
|
||||
return response()->json($data, $status)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
|
||||
|
||||
// not found
|
||||
|
||||
public function forbidden($message = 'Forbidden')
|
||||
public function forbidden($message = 'Forbidden'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 403);
|
||||
}
|
||||
|
||||
// forbidden
|
||||
|
||||
public function unauthorized($message = 'Unauthorized')
|
||||
public function unauthorized($message = 'Unauthorized'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 401);
|
||||
}
|
||||
|
||||
// unauthorized
|
||||
|
||||
public function badRequest($message = 'Bad request')
|
||||
public function badRequest($message = 'Bad request'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 400);
|
||||
}
|
||||
|
||||
// bad request
|
||||
|
||||
public function created($message = 'Created')
|
||||
public function created($message = 'Created'): JsonResponse
|
||||
{
|
||||
return $this->success($message, 201);
|
||||
}
|
||||
|
||||
// created
|
||||
|
||||
public function success($data = [])
|
||||
public function success($data = []): JsonResponse
|
||||
{
|
||||
return $this->apiResponse($data, 200);
|
||||
}
|
||||
|
||||
// accepted
|
||||
|
||||
public function accepted($message = 'Accepted')
|
||||
public function accepted($message = 'Accepted'): JsonResponse
|
||||
{
|
||||
return $this->success($message, 202);
|
||||
}
|
||||
|
||||
// no content
|
||||
public function noContent($message = 'No content')
|
||||
public function noContent($message = 'No content'): JsonResponse
|
||||
{
|
||||
return $this->success($message, 204);
|
||||
}
|
||||
|
||||
// updated
|
||||
public function updated($message = 'Updated')
|
||||
public function updated($message = 'Updated'): JsonResponse
|
||||
{
|
||||
return $this->success($message, 200);
|
||||
}
|
||||
|
||||
// deleted
|
||||
public function deleted($message = 'Deleted')
|
||||
public function deleted($message = 'Deleted'): JsonResponse
|
||||
{
|
||||
return $this->success($message, 200);
|
||||
}
|
||||
|
||||
// not allowed
|
||||
public function notAllowed($message = 'Not allowed')
|
||||
public function notAllowed($message = 'Not allowed'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 405);
|
||||
}
|
||||
|
||||
// conflict
|
||||
public function conflict($message = 'Conflict')
|
||||
public function conflict($message = 'Conflict'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 409);
|
||||
}
|
||||
|
||||
// too many requests
|
||||
public function tooManyRequests($message = 'Too many requests')
|
||||
public function tooManyRequests($message = 'Too many requests'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 429);
|
||||
}
|
||||
|
||||
// server error
|
||||
public function serverError($message = 'Server error')
|
||||
public function serverError($message = 'Server error'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 500);
|
||||
}
|
||||
|
||||
// service unavailable
|
||||
public function serviceUnavailable($message = 'Service unavailable')
|
||||
public function serviceUnavailable($message = 'Service unavailable'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 503);
|
||||
}
|
||||
|
||||
// method not allowed
|
||||
public function methodNotAllowed($message = 'Method not allowed')
|
||||
public function methodNotAllowed($message = 'Method not allowed'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 405);
|
||||
}
|
||||
|
||||
// not acceptable
|
||||
public function notAcceptable($message = 'Not acceptable')
|
||||
public function notAcceptable($message = 'Not acceptable'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 406);
|
||||
}
|
||||
|
||||
// precondition failed
|
||||
public function preconditionFailed($message = 'Precondition failed')
|
||||
public function preconditionFailed($message = 'Precondition failed'): JsonResponse
|
||||
{
|
||||
return $this->error($message, 412);
|
||||
}
|
||||
|
@ -18,7 +18,6 @@ class ForumController extends Controller
|
||||
public function __construct()
|
||||
{
|
||||
$this->baseUrl = config('forum.base_url');
|
||||
|
||||
$this->http = Http::baseUrl($this->baseUrl . '/api')->throw();
|
||||
}
|
||||
|
||||
@ -43,8 +42,7 @@ public function cache(Closure $callback)
|
||||
|
||||
public function get($url)
|
||||
{
|
||||
$resp = $this->http->get($url)->json()['data'];
|
||||
return $resp;
|
||||
return $this->http->get($url)->json()['data'];
|
||||
}
|
||||
|
||||
public function resp($data)
|
||||
|
@ -39,9 +39,7 @@ public function update(Request $request, Host $host): JsonResponse
|
||||
public function destroy(Host $host)
|
||||
{
|
||||
if ($host->user_id == auth()->id()) {
|
||||
|
||||
if ($host->status == 'pending') {
|
||||
|
||||
// 如果上次更新时间大于 5min
|
||||
if (time() - strtotime($host->updated_at) > 300) {
|
||||
$host->delete();
|
||||
@ -62,9 +60,6 @@ public function usages(): JsonResponse
|
||||
{
|
||||
$month = now()->month;
|
||||
|
||||
// $month_cache_key = 'user_' . auth()->id() . '_month_' . $month . '_hosts_drops';
|
||||
// $hosts_drops = Cache::get($month_cache_key, []);
|
||||
|
||||
$month_cache_key = 'user_' . auth()->id() . '_month_' . $month . '_hosts_balances';
|
||||
$hosts_balances = Cache::get($month_cache_key, []);
|
||||
|
||||
|
@ -10,9 +10,7 @@ class ServerController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
|
||||
$servers = Cache::get('servers', []);
|
||||
//
|
||||
|
||||
if ($request->has('module_id')) {
|
||||
// 查找指定 module_id
|
||||
|
@ -4,14 +4,13 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Task;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TaskController extends Controller
|
||||
{
|
||||
public function __invoke()
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
//
|
||||
$tasks = (new Task())->getCurrentUserTasks();
|
||||
|
||||
$tasks = Task::where('user_id', $request->user()->id)->with('host')->latest()->get();
|
||||
return $this->success($tasks);
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
return $this->success($request->user());
|
||||
|
@ -10,10 +10,8 @@
|
||||
|
||||
class WorkOrderController extends Controller
|
||||
{
|
||||
//
|
||||
public function index(WorkOrder $workOrder): JsonResponse
|
||||
{
|
||||
|
||||
$workOrder = $workOrder->thisUser()->with(['user', 'module', 'host'])->simplePaginate(100);
|
||||
|
||||
return $this->success($workOrder);
|
||||
@ -31,6 +29,7 @@ public function store(Request $request)
|
||||
'host_id' => 'nullable|sometimes|exists:hosts,id',
|
||||
]);
|
||||
|
||||
// 这里无法直接调用,得先转换成 Array
|
||||
|
||||
$request_data = $request->toArray();
|
||||
|
||||
@ -65,7 +64,6 @@ public function show(WorkOrder $workOrder): JsonResponse
|
||||
*/
|
||||
public function update(Request $request, WorkOrder $workOrder)
|
||||
{
|
||||
|
||||
if (auth()->id() !== $workOrder->user_id) {
|
||||
return $this->notFound('无法找到对应的工单。');
|
||||
}
|
||||
|
@ -10,8 +10,6 @@
|
||||
|
||||
class BroadcastController extends Controller
|
||||
{
|
||||
//
|
||||
|
||||
public function broadcast_to_user(Request $request, User $user)
|
||||
{
|
||||
$this->validate($request, $this->rules());
|
||||
@ -22,7 +20,6 @@ public function broadcast_to_user(Request $request, User $user)
|
||||
]));
|
||||
|
||||
return $this->created($request->message);
|
||||
|
||||
}
|
||||
|
||||
private function rules()
|
||||
@ -36,7 +33,6 @@ public function broadcast_to_host(Request $request, Host $host)
|
||||
{
|
||||
$this->validate($request, $this->rules());
|
||||
|
||||
|
||||
broadcast(new UserEvent($host->user_id, 'modules.hosts.event', [
|
||||
'host' => $host,
|
||||
'message' => $request->message
|
||||
|
@ -41,7 +41,6 @@ public function store(Request $request): Response|JsonResponse
|
||||
'user_id' => 'required|integer|exists:users,id',
|
||||
]);
|
||||
|
||||
//
|
||||
$user = User::findOrFail($request->user_id);
|
||||
|
||||
if ($request->price > 0) {
|
||||
|
@ -14,16 +14,13 @@ class ModuleController extends Controller
|
||||
public function index()
|
||||
{
|
||||
$module = auth('module')->user()->calculate();
|
||||
|
||||
return $this->success($module);
|
||||
}
|
||||
|
||||
public function call(Request $request, Module $module)
|
||||
{
|
||||
$path = request()->path();
|
||||
|
||||
$path = substr($path, strlen('/api/modules/' . $module->id));
|
||||
|
||||
$path = preg_replace('/[^a-zA-Z0-9\/]/', '', $path);
|
||||
|
||||
$method = Str::lower($request->method());
|
||||
|
@ -4,14 +4,18 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\WorkOrder\Reply;
|
||||
use App\Models\WorkOrder\WorkOrder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class ReplyController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
@ -28,10 +32,18 @@ public function index(Request $request): JsonResponse
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function store(Request $request): JsonResponse
|
||||
public function store(Request $request, WorkOrder $work_order): JsonResponse
|
||||
{
|
||||
//
|
||||
$this->validate($request, [
|
||||
'content' => 'required|string|max:255',
|
||||
'work_order_id' => 'required|integer|exists:work_orders,id',
|
||||
]);
|
||||
|
||||
if ($work_order->module_id !== auth('module')->id()) {
|
||||
return $this->error('您没有权限回复此工单。');
|
||||
}
|
||||
|
||||
// 需要转换成数组
|
||||
$request_array = $request->all();
|
||||
|
||||
$reply = Reply::create([
|
||||
|
@ -7,25 +7,24 @@
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class TaskController extends Controller
|
||||
{
|
||||
public $user_id, $host_id;
|
||||
|
||||
public int $user_id, $host_id;
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response|null
|
||||
* @param Request $request
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index(Request $request): ?Response
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
//
|
||||
// $this->assignId($request);
|
||||
$modules = Task::where('module_id', $request->user('module')->id())->simplePaginate(100);
|
||||
|
||||
// return $this->getTasks();
|
||||
|
||||
return null;
|
||||
return $this->success($modules);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -34,7 +33,7 @@ public function index(Request $request): ?Response
|
||||
* @param Request $request
|
||||
*
|
||||
* @return JsonResponse
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public function store(Request $request): JsonResponse
|
||||
{
|
||||
@ -57,7 +56,7 @@ public function store(Request $request): JsonResponse
|
||||
* @param Task $task
|
||||
*
|
||||
* @return JsonResponse
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public function update(Request $request, Task $task): JsonResponse
|
||||
{
|
||||
|
@ -11,8 +11,6 @@
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
//
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
$this->validate($request, [
|
||||
@ -47,8 +45,6 @@ public function index(Request $request)
|
||||
|
||||
public function show(User $user)
|
||||
{
|
||||
$transaction = new Transaction();
|
||||
|
||||
return $this->success($user);
|
||||
}
|
||||
|
||||
@ -67,7 +63,6 @@ public function reduce(Request $request, User $user)
|
||||
]);
|
||||
|
||||
$module = auth('module')->user();
|
||||
|
||||
$transaction = new Transaction();
|
||||
|
||||
try {
|
||||
|
@ -6,36 +6,29 @@
|
||||
use App\Http\Requests\Remote\WorkOrderRequest;
|
||||
use App\Models\WorkOrder\WorkOrder;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class WorkOrderController extends Controller
|
||||
{
|
||||
//
|
||||
public function index(WorkOrder $workOrder): JsonResponse
|
||||
{
|
||||
// $work_orders = new WorkOrder();
|
||||
// // if route has user
|
||||
// if ($request->route('user')) {
|
||||
// $work_orders = $work_orders->where('user_id', $request->route('user'));
|
||||
// }
|
||||
|
||||
// $work_orders = $work_orders->simplePaginate(10);
|
||||
|
||||
$workOrder = $workOrder->thisModule()->simplePaginate(10);
|
||||
|
||||
return $this->success($workOrder);
|
||||
}
|
||||
|
||||
// public function store(Request $request) {
|
||||
|
||||
// }
|
||||
|
||||
public function show(WorkOrderRequest $request, WorkOrder $workOrder): JsonResponse
|
||||
public function show(Request $request, WorkOrder $workOrder): JsonResponse
|
||||
{
|
||||
if ($workOrder->module_id !== $request->user('module')->id) {
|
||||
return $this->error('您没有权限查看此工单。');
|
||||
}
|
||||
|
||||
return $this->success($workOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Illuminate\Validation\ValidationException
|
||||
* @throws ValidationException
|
||||
*/
|
||||
public function update(WorkOrderRequest $request, WorkOrder $workOrder): JsonResponse
|
||||
{
|
||||
@ -46,7 +39,4 @@ public function update(WorkOrderRequest $request, WorkOrder $workOrder): JsonRes
|
||||
$workOrder->update($request->only('status'));
|
||||
return $this->success($workOrder);
|
||||
}
|
||||
|
||||
// public function destroy() {}
|
||||
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
use App\Events\UserEvent;
|
||||
use App\Models\WorkOrder\WorkOrder;
|
||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo as BelongsToAlias;
|
||||
@ -13,23 +14,23 @@
|
||||
/**
|
||||
* App\Models\Host
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $module_id
|
||||
* @property int $user_id
|
||||
* @property float $price
|
||||
* @property float|null $managed_price
|
||||
* @property mixed|null $configuration
|
||||
* @property string $status
|
||||
* @property int|null $hour
|
||||
* @property \Illuminate\Support\Carbon|null $suspended_at
|
||||
* @property string|null $deleted_at
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @property-read \App\Models\Module $module
|
||||
* @property-read \App\Models\User $user
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|WorkOrder[] $workOrders
|
||||
* @property-read int|null $work_orders_count
|
||||
* @property int $id
|
||||
* @property string $name
|
||||
* @property string $module_id
|
||||
* @property int $user_id
|
||||
* @property float $price
|
||||
* @property float|null $managed_price
|
||||
* @property mixed|null $configuration
|
||||
* @property string $status
|
||||
* @property int|null $hour
|
||||
* @property \Illuminate\Support\Carbon|null $suspended_at
|
||||
* @property string|null $deleted_at
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @property-read \App\Models\Module $module
|
||||
* @property-read \App\Models\User $user
|
||||
* @property-read Collection|WorkOrder[] $workOrders
|
||||
* @property-read int|null $work_orders_count
|
||||
* @method static \GeneaLabs\LaravelModelCaching\CachedBuilder|Host active()
|
||||
* @method static \GeneaLabs\LaravelModelCaching\CachedBuilder|Host all($columns = [])
|
||||
* @method static \GeneaLabs\LaravelModelCaching\CachedBuilder|Host avg($column)
|
||||
@ -157,7 +158,7 @@ protected static function boot()
|
||||
});
|
||||
}
|
||||
|
||||
public function getUserHosts($user_id = null)
|
||||
public function getUserHosts($user_id = null): array|Collection
|
||||
{
|
||||
return $this->where('user_id', $user_id)->with('module', function ($query) {
|
||||
$query->select(['id', 'name']);
|
||||
@ -182,19 +183,19 @@ public function module(): BelongsToAlias
|
||||
|
||||
// cost
|
||||
|
||||
// public function scopeActive($query)
|
||||
// {
|
||||
// return $query->whereIn('status', ['running', 'stopped']);
|
||||
// }
|
||||
//
|
||||
// public function scopeThisUser($query, $module = null)
|
||||
// {
|
||||
// if ($module) {
|
||||
// return $query->where('user_id', auth()->id())->where('module_id', $module);
|
||||
// } else {
|
||||
// return $query->where('user_id', auth()->id());
|
||||
// }
|
||||
// }
|
||||
public function scopeActive($query)
|
||||
{
|
||||
return $query->whereIn('status', ['running', 'stopped']);
|
||||
}
|
||||
|
||||
public function scopeThisUser($query, $module = null)
|
||||
{
|
||||
if ($module) {
|
||||
return $query->where('user_id', auth()->id())->where('module_id', $module);
|
||||
} else {
|
||||
return $query->where('user_id', auth()->id());
|
||||
}
|
||||
}
|
||||
|
||||
public function safeDelete(): bool
|
||||
{
|
||||
|
@ -7,6 +7,7 @@
|
||||
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Ramsey\Uuid\Uuid;
|
||||
use function auth;
|
||||
@ -83,6 +84,10 @@ protected static function boot()
|
||||
// id 为 uuid
|
||||
$model->id = Uuid::uuid4()->toString();
|
||||
|
||||
// 如果是模块创建的任务
|
||||
if (auth('module')->check()) {
|
||||
$model->module_id = auth('module')->id();
|
||||
}
|
||||
|
||||
// host_id 和 user_id 至少存在一个
|
||||
if (!$model->host_id && !$model->user_id) {
|
||||
@ -97,14 +102,6 @@ protected static function boot()
|
||||
throw new CommonException('host_id 不存在');
|
||||
}
|
||||
|
||||
// dd($model);
|
||||
|
||||
// dd($model->host_id);
|
||||
// $host = Host::where('id', $model->host_id)->first();
|
||||
|
||||
// dd($host);
|
||||
|
||||
|
||||
$model->user_id = $model->host->user_id;
|
||||
|
||||
Cache::forget('user_tasks_' . $model->user_id);
|
||||
@ -134,27 +131,16 @@ protected static function boot()
|
||||
|
||||
|
||||
static::deleted(function ($model) {
|
||||
// Cache::forget('user_tasks_' . $model->user_id);
|
||||
|
||||
broadcast(new UserEvent($model->user_id, 'tasks.deleted', $model));
|
||||
});
|
||||
}
|
||||
|
||||
public function scopeUser($query)
|
||||
{
|
||||
return $query->where('user_id', auth()->id());
|
||||
}
|
||||
// public function scopeUser($query)
|
||||
// {
|
||||
// return $query->where('user_id', auth()->id());
|
||||
// }
|
||||
|
||||
public function getCurrentUserTasks()
|
||||
{
|
||||
return Cache::remember('user_tasks_' . auth()->id(), 3600, function () {
|
||||
return $this->user()->with('host')->latest()->get();
|
||||
});
|
||||
}
|
||||
|
||||
// before create
|
||||
|
||||
public function host()
|
||||
public function host(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Host::class);
|
||||
}
|
||||
|
@ -54,11 +54,10 @@ class Transaction extends Model
|
||||
];
|
||||
|
||||
|
||||
// scope this user
|
||||
// public function scopeThisUser($query)
|
||||
// {
|
||||
// return $query->where('user_id', auth()->id());
|
||||
// }
|
||||
public function scopeThisUser($query)
|
||||
{
|
||||
return $query->where('user_id', auth()->id());
|
||||
}
|
||||
|
||||
private function addLog($user_id, $data)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user