From ec26db0bfadf661e6e3d7a9c255595c45dd79aae Mon Sep 17 00:00:00 2001 From: Pier-Paolo Mammi Date: Thu, 16 Jul 2026 14:43:39 +0200 Subject: [PATCH] add mock api for contratti --- public/index.php | 1 + .../Controllers/V1/ContrattiController.php | 30 +++++++++++++++++++ src/Api/Core/Request.php | 3 +- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/Api/Controllers/V1/ContrattiController.php diff --git a/public/index.php b/public/index.php index 8512352..0ce0a83 100644 --- a/public/index.php +++ b/public/index.php @@ -47,6 +47,7 @@ if (strpos($request->path(), '/api/') === 0) { $router->get('/users/index', 'UsersController@index'); $router->post('/users/create', 'UsersController@create'); $router->get('/example/test', 'ExampleController@test'); +$router->get('/contratti/cerca', 'ContrattiController@cercaContratti'); // Rate limiting by IP address $key = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; diff --git a/src/Api/Controllers/V1/ContrattiController.php b/src/Api/Controllers/V1/ContrattiController.php new file mode 100644 index 0000000..a0e4ec0 --- /dev/null +++ b/src/Api/Controllers/V1/ContrattiController.php @@ -0,0 +1,30 @@ + 'ID_CONTRATTO_001', 'titoloContratto' => 'Contratto Base', 'idDomanda' => 'ID_0101', 'idRicevuta' => 'RIC_1001' ], + [ 'idContratto' => 'ID_CONTRATTO_002', 'titoloContratto' => 'Contratto Avanzato', 'idDomanda' => 'ID_0102', 'idRicevuta' => 'RIC_1002' ], + [ 'idContratto' => 'ID_CONTRATTO_003', 'titoloContratto' => 'Contratto Premium', 'idDomanda' => 'ID_0103', 'idRicevuta' => 'RIC_1003' ], + [ 'idContratto' => 'ID_CONTRATTO_004', 'titoloContratto' => 'Contratto Enterprise', 'idDomanda' => 'ID_0104', 'idRicevuta' => 'RIC_1004' ], + [ 'idContratto' => 'ID_CONTRATTO_005', 'titoloContratto' => 'Contratto Custom', 'idDomanda' => 'ID_0105', 'idRicevuta' => 'RIC_1005' ], + ]; + + public function cercaContratti(Request $req, Response $res) { + $term = $req->query()['term'] ?? ""; + + $filtered = array_filter($this->contratti, function($contratto) use ($term) { + if (empty($term)) { + return false; + } + $term = strtolower($term); + return stripos($contratto['idContratto'], $term) !== false || + stripos($contratto['titoloContratto'], $term) !== false; + }); + + return $res->json(array_values($filtered)); + } +} diff --git a/src/Api/Core/Request.php b/src/Api/Core/Request.php index 8a2c2d2..bd201b9 100644 --- a/src/Api/Core/Request.php +++ b/src/Api/Core/Request.php @@ -18,8 +18,7 @@ class Request { return $_GET; } - public function header(string $name): ?string - { + public function header(string $name): ?string { $key = 'HTTP_' . strtoupper(str_replace('-', '_', $name)); return $_SERVER[$key] ?? null; }