Agrega endpoints para crear, editar y asociar instancias a clientes y tipos de sitio. Valida las credenciales contra el esquema del catalogo y devuelve metadatos sin secretos. Restringe la administracion al rol admin autenticado y mantiene inmutables los codigos de integracion. Incluye pruebas de API, permisos, prioridad de resolucion, edicion compartida y renovacion de tokens.
43 lines
1.4 KiB
PHP
43 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Integration\Controllers;
|
|
|
|
use App\Domains\Integration\Models\IntegrationInstance;
|
|
use App\Domains\Integration\Requests\StoreIntegrationInstanceRequest;
|
|
use App\Domains\Integration\Resources\IntegrationInstanceResource;
|
|
use App\Domains\Integration\Services\IntegrationInstanceService;
|
|
use App\Http\Controllers\Controller;
|
|
|
|
class IntegrationInstanceController extends Controller
|
|
{
|
|
public function __construct(private readonly IntegrationInstanceService $service) {}
|
|
|
|
public function index()
|
|
{
|
|
return IntegrationInstanceResource::collection(IntegrationInstance::query()->orderBy('id')->paginate());
|
|
}
|
|
|
|
public function store(StoreIntegrationInstanceRequest $request)
|
|
{
|
|
return (new IntegrationInstanceResource($this->service->create($request->validated())))
|
|
->response()->setStatusCode(201);
|
|
}
|
|
|
|
public function show(IntegrationInstance $integrationInstance)
|
|
{
|
|
return new IntegrationInstanceResource($integrationInstance);
|
|
}
|
|
|
|
public function update(StoreIntegrationInstanceRequest $request, IntegrationInstance $integrationInstance)
|
|
{
|
|
return new IntegrationInstanceResource($this->service->update($integrationInstance, $request->validated()));
|
|
}
|
|
|
|
public function destroy(IntegrationInstance $integrationInstance)
|
|
{
|
|
$this->service->delete($integrationInstance);
|
|
|
|
return response()->noContent();
|
|
}
|
|
}
|