Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@
"ext-simplexml": "*",
"ext-xsl": "*",
"ext-zip": "*",
"api-platform/laravel": "^4.1",
"api-platform/laravel": "^4.2.14",
"cuyz/valinor": "^2.3",
"davidepastore/codice-fiscale": "^0.10.0",
"devcode-it/ical-easy-reader": "dev-main",
"devcode-it/sdd_ita": "dev-master",
Expand Down
1 change: 0 additions & 1 deletion config.example.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@

// Impostazioni di debug
$debug = false;
$api_development = false; // Se true, disabilita l'autenticazione dell'API

$disable_hooks = false;

Expand Down
2 changes: 1 addition & 1 deletion config/filesystems.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => config('app.url').'/files',
'url' => rtrim(config('app.url'), '/').'/storage',
'visibility' => 'public',
'throw' => false,
'report' => false,
Expand Down
8 changes: 6 additions & 2 deletions config/logging.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Monolog\Processor\PsrLogMessageProcessor;

return [

/*
|--------------------------------------------------------------------------
| Default Log Channel
Expand All @@ -17,7 +18,7 @@
|
*/

'default' => env('LOG_CHANNEL', 'daily'),
'default' => env('LOG_CHANNEL', 'stack'),

/*
|--------------------------------------------------------------------------
Expand Down Expand Up @@ -50,6 +51,7 @@
*/

'channels' => [

'stack' => [
'driver' => 'stack',
'channels' => explode(',', (string) env('LOG_STACK', 'single')),
Expand Down Expand Up @@ -132,5 +134,7 @@
'emergency' => [
'path' => base_path_osm().'logs/app.log',
],

],
];

];
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Modules\Impostazioni\API\Controllers;

use API\Controllers\BaseController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Models\Setting;
use Modules\Impostazioni\API\ImpostazioneResource;

final class GetImpostazioneController extends BaseController
{
public function __invoke(Request $request): JsonResponse
{
$this->init($request);

$setting = Setting::find($request->route('id'));
if (!$setting) {
return null;
}

$response = ImpostazioneResource::fromModel($setting);

return new JsonResponse($response);
}

protected function hasAccess($request): bool
{
return $this->hasModuleReadAccess('Impostazioni');
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?php

namespace Modules\Impostazioni\API\Controllers;

use API\Controllers\BaseController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Models\Setting;
use Modules\Impostazioni\API\ImpostazioneResource;

final class ListImpostazioniController extends BaseController
{
public function __invoke(Request $request): JsonResponse
{
$this->init($request);

$sezione = $request->query('sezione');
$search = $request->query('ricerca');

// Trova le impostazioni che corrispondono alla ricerca
if (!empty($search)) {
$impostazioni = Setting::where('nome', 'like', '%'.$search.'%')
->orWhere('sezione', 'like', '%'.$search.'%')
->get();
} elseif (!empty($sezione)) {
$impostazioni = Setting::where('sezione', $sezione)->get();
} else {
$impostazioni = Setting::all();
}

$results = [];
foreach ($impostazioni as $impostazione) {
$results[] = ImpostazioneResource::fromModel($impostazione);
}

return new JsonResponse($results);
}

protected function hasAccess($request): bool
{
return $this->hasModuleReadAccess('Impostazioni');
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,17 @@

namespace Modules\Impostazioni\API\Controllers;

use ApiPlatform\Metadata\Operation;
use ApiPlatform\State\ProviderInterface;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Support\Facades\Auth;
use API\Controllers\BaseController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Models\Setting;
use Modules\Impostazioni\API\Models\ListSezioniImpostazioniResponse;

final class ListSezioniImpostazioniProvider implements ProviderInterface
final class ListSezioniImpostazioniController extends BaseController
{
public function provide(Operation $operation, array $uriVariables = [], array $context = []): ?ListSezioniImpostazioniResponse
public function __invoke(Request $request): JsonResponse
{
$user = Auth::user();
if (!$user || !$user->is_admin) {
throw new AuthorizationException();
}
$this->init($request);

$gruppi = Setting::selectRaw('sezione AS nome, COUNT(id) AS numero')
->groupBy(['sezione'])
Expand All @@ -30,6 +26,11 @@ public function provide(Operation $operation, array $uriVariables = [], array $c
$response->sezioni[$gruppo->nome] = $gruppo->numero;
}

return $response;
return new JsonResponse($response);
}

protected function hasAccess($request): bool
{
return $this->hasModuleReadAccess('Impostazioni');
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace Modules\Impostazioni\API\Controllers;

use API\Controllers\BaseController;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Models\Setting;
use Modules\Impostazioni\API\Models\UpdateImpostazioneRequest;
use Modules\Impostazioni\API\Models\UpdateImpostazioneResponse;

final class UpdateImpostazioneController extends BaseController
{
public function __invoke(Request $request): JsonResponse
{
$data = $this->init($request, UpdateImpostazioneRequest::class);

$id = $request->route('id');
$response = new UpdateImpostazioneResponse();

$impostazione = Setting::find($id);
if (!$impostazione->editable) {
$response->edited = true;

return new JsonResponse($response);
}

$response->edited = \Settings::setValue($impostazione->id, $data->valore);

return new JsonResponse($response);
}

protected function hasAccess($request): bool
{
return $this->hasModuleWriteAccess('Impostazioni');
}
}

This file was deleted.

17 changes: 8 additions & 9 deletions modules/impostazioni/src/API/ImpostazioneResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
use ApiPlatform\Metadata\Put;
use ApiPlatform\Metadata\QueryParameter;
use Models\Setting;
use Modules\Impostazioni\API\Controllers\GetImpostazioneProvider;
use Modules\Impostazioni\API\Controllers\ListImpostazioniProvider;
use Modules\Impostazioni\API\Controllers\ListSezioniImpostazioniProvider;
use Modules\Impostazioni\API\Controllers\UpdateImpostazioneProcessor;
use Modules\Impostazioni\API\Controllers\GetImpostazioneController;
use Modules\Impostazioni\API\Controllers\ListImpostazioniController;
use Modules\Impostazioni\API\Controllers\ListSezioniImpostazioniController;
use Modules\Impostazioni\API\Controllers\UpdateImpostazioneController;
use Modules\Impostazioni\API\Models\ListSezioniImpostazioniResponse;
use Modules\Impostazioni\API\Models\UpdateImpostazioneRequest;
use Modules\Impostazioni\API\Models\UpdateImpostazioneResponse;
Expand All @@ -21,12 +21,12 @@
operations: [
new Get(
uriTemplate: '/impostazioni/sezioni',
provider: ListSezioniImpostazioniProvider::class,
controller: ListSezioniImpostazioniController::class,
output: ListSezioniImpostazioniResponse::class,
),
new GetCollection(
uriTemplate: '/impostazioni',
provider: ListImpostazioniProvider::class,
controller: ListImpostazioniController::class,
paginationEnabled: false,
parameters: [
'ricerca' => new QueryParameter(property: 'hydra:freetextQuery', required: false),
Expand All @@ -35,12 +35,11 @@
),
new Get(
uriTemplate: '/impostazione/{id}',
provider: GetImpostazioneProvider::class,
controller: GetImpostazioneController::class,
),
new Put(
uriTemplate: '/impostazione/{id}',
provider: GetImpostazioneProvider::class,
processor: UpdateImpostazioneProcessor::class,
controller: UpdateImpostazioneController::class,
input: UpdateImpostazioneRequest::class,
output: UpdateImpostazioneResponse::class,
),
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@
"setup-corepack": "npm install -g corepack && corepack enable",
"export-openapi": "php artisan api:openapi:export --output=openapi.json",
"fix-openapi-js": "node -e \"require('fs').writeFileSync('assets/api/src/main.js', \\\"import * as API from './index';global.window.API = API;\\\");\"",
"update-openapi-client": "npm run-script export-openapi && npx @openapitools/openapi-generator-cli generate -i openapi.json -g javascript -o assets/api --skip-validate-spec && npm run-script fix-openapi-js && cd ./assets/api && npm install && npx babel src -d dist && cd ../.. && npx browserify -y ./assets/api/dist/main.js -o ./assets/dist/js/api.js"
"copy-vendor-css-folder": "node -e \"const fs = require('fs'); const sourceFolder = './vendor/api-platform/laravel/public'; const destFolder = './assets/dist/apiplatform'; const copyFolder = (src, dest) => { if (!fs.existsSync(dest)) fs.mkdirSync(dest); fs.readdirSync(src).forEach(file => { const srcFile = path.join(src, file); const destFile = path.join(dest, file); if (fs.statSync(srcFile).isDirectory()) copyFolder(srcFile, destFile); else fs.copyFileSync(srcFile, destFile); }); }; copyFolder(sourceFolder, destFolder);\"",
"update-openapi-client": "npm run copy-vendor-css-folder && npm run-script export-openapi && npx @openapitools/openapi-generator-cli generate -i openapi.json -g javascript -o assets/api --skip-validate-spec && npm run-script fix-openapi-js && cd ./assets/api && npm install && npx babel src -d dist && cd ../.. && npx browserify -y ./assets/api/dist/main.js -o ./assets/dist/js/api.js"
},
"packageManager": "yarn@4.12.0"
}
Loading
Loading