ldc-portsalaries/app/Http/Controllers/FlashesController.php

71 lines
1.9 KiB
PHP
Raw Permalink Normal View History

2021-05-08 06:50:19 +02:00
<?php
namespace App\Http\Controllers;
use App\Models\Flash;
use App\Models\Site;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Kwaadpepper\CrudPolicies\Traits\CrudController;
2021-05-08 06:50:19 +02:00
class FlashesController extends Controller
2021-05-08 06:50:19 +02:00
{
use CrudController;
2021-05-08 06:50:19 +02:00
/** @var Flash */
public static $modelClass = Flash::class;
2021-05-08 06:50:19 +02:00
// BO
// Eloquent callbacks
public function indexQuery(Builder $query): Builder
{
/** @var \App\Models\User */
$user = auth()->user();
$flashesID = \collect([]);
Site::whereId($user->selected_site_id)->with('flashes')
->get()->map(function (Site $site) use (&$flashesID) {
2021-05-08 06:50:19 +02:00
$flashesID = $flashesID->merge($site->flashes->pluck('id')->all());
});
return $query->whereIn('id', $flashesID->unique());
}
public function storeModel(Model &$model)
{
/** @var \App\Models\User */
$user = auth()->user();
$model->site_id = $user->selected_site_id;
$model->content = clean($model->content);
2021-05-08 06:50:19 +02:00
}
public function updateModel(Model &$model)
{
/** @var \App\Models\User */
$user = auth()->user();
$model->site_id = $user->selected_site_id;
$model->content = clean($model->content);
2021-05-08 06:50:19 +02:00
}
// FO
public function inform()
{
/** @var \app\Models\Employee */
$employee = auth('employee')->user();
$flashes = $employee->getFlashes()
->filter(function (Flash $flash) {
return $flash->status;
});
2021-05-08 06:50:19 +02:00
return view('front.flashes.index', compact('flashes'));
}
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
public function informShow(Flash $flash)
{
if (!$flash->status) {
abort(404);
}
2021-05-08 06:50:19 +02:00
return view('front.flashes.show', compact('flash'));
}
}