50 lines
1.8 KiB
PHP
50 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Administrator\Controllers;
|
|
|
|
use App\Domains\Administrator\Requests\StoreAdministratorRequest;
|
|
use App\Domains\Administrator\Requests\UpdateAdministratorRequest;
|
|
use App\Domains\Administrator\Resources\AdministratorResource;
|
|
use App\Domains\Administrator\Services\AdministratorService;
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class AdminAppAdministratorController extends Controller
|
|
{
|
|
public function __construct(private readonly AdministratorService $administratorService) {}
|
|
|
|
public function index(Request $request): AnonymousResourceCollection
|
|
{
|
|
return AdministratorResource::collection($this->administratorService->list(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$request->string('search')->trim()->toString() ?: null,
|
|
));
|
|
}
|
|
|
|
public function store(StoreAdministratorRequest $request): AdministratorResource
|
|
{
|
|
return AdministratorResource::make($this->administratorService->create(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$request->validated(),
|
|
));
|
|
}
|
|
|
|
public function update(UpdateAdministratorRequest $request, int $administrator): AdministratorResource
|
|
{
|
|
return AdministratorResource::make($this->administratorService->update(
|
|
$request->user()->tenant()->firstOrFail(),
|
|
$administrator,
|
|
$request->validated(),
|
|
));
|
|
}
|
|
|
|
public function destroy(Request $request, int $administrator): Response
|
|
{
|
|
$this->administratorService->delete($request->user()->tenant()->firstOrFail(), $administrator, $request->user());
|
|
|
|
return response()->noContent();
|
|
}
|
|
}
|