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.
44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Integration\Controllers;
|
|
|
|
use App\Domains\Integration\Models\Integration;
|
|
use App\Domains\Integration\Requests\StoreIntegrationRequest;
|
|
use App\Domains\Integration\Requests\UpdateIntegrationRequest;
|
|
use Illuminate\Routing\Controller;
|
|
|
|
class IntegrationController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return response()->json(Integration::all());
|
|
}
|
|
|
|
public function store(StoreIntegrationRequest $request)
|
|
{
|
|
$integration = Integration::create($request->validated());
|
|
|
|
return response()->json($integration, 201);
|
|
}
|
|
|
|
public function show(Integration $integration)
|
|
{
|
|
return response()->json($integration);
|
|
}
|
|
|
|
public function update(UpdateIntegrationRequest $request, Integration $integration)
|
|
{
|
|
$integration->update($request->validated());
|
|
|
|
return response()->json($integration->fresh());
|
|
}
|
|
|
|
public function destroy(Integration $integration)
|
|
{
|
|
abort_if($integration->instances()->exists(), 409, 'Delete the integration instances first.');
|
|
$integration->delete();
|
|
|
|
return response()->noContent();
|
|
}
|
|
}
|