mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-19 19:24:03 +00:00
Consolidate Admin/Modules: 10 single-action controllers into 2
ModulesController: index, show, checkToken, enable, disable ModuleInstallationController: download, upload, unzip, copy, complete
This commit is contained in:
@@ -9,6 +9,9 @@ use Illuminate\Http\JsonResponse;
|
|||||||
|
|
||||||
class ApiController extends Controller
|
class ApiController extends Controller
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Resoibd wutg syccess
|
||||||
|
*/
|
||||||
public function respondSuccess(): JsonResponse
|
public function respondSuccess(): JsonResponse
|
||||||
{
|
{
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace App\Http\Controllers\Admin\Backup;
|
|||||||
use App\Jobs\CreateBackupJob;
|
use App\Jobs\CreateBackupJob;
|
||||||
use App\Models\FileDisk;
|
use App\Models\FileDisk;
|
||||||
use App\Rules\Backup\PathToZip;
|
use App\Rules\Backup\PathToZip;
|
||||||
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
@@ -19,9 +20,10 @@ class BackupsController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage backups');
|
$this->authorize('manage backups');
|
||||||
|
|
||||||
@@ -70,9 +72,10 @@ class BackupsController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage backups');
|
$this->authorize('manage backups');
|
||||||
|
|
||||||
@@ -87,9 +90,10 @@ class BackupsController extends ApiController
|
|||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function destroy($disk, Request $request)
|
public function destroy($disk, Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage backups');
|
$this->authorize('manage backups');
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
namespace App\Http\Controllers\Admin\Backup;
|
namespace App\Http\Controllers\Admin\Backup;
|
||||||
|
|
||||||
use App\Rules\Backup\PathToZip;
|
use App\Rules\Backup\PathToZip;
|
||||||
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
|
use Illuminate\Contracts\Routing\ResponseFactory;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Spatie\Backup\BackupDestination\Backup;
|
use Spatie\Backup\BackupDestination\Backup;
|
||||||
use Spatie\Backup\BackupDestination\BackupDestination;
|
use Spatie\Backup\BackupDestination\BackupDestination;
|
||||||
@@ -13,7 +15,13 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
|
|||||||
|
|
||||||
class DownloadBackupController extends ApiController
|
class DownloadBackupController extends ApiController
|
||||||
{
|
{
|
||||||
public function __invoke(Request $request)
|
/**
|
||||||
|
* Handle backups
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
*/
|
||||||
|
public function __invoke(Request $request): \Illuminate\Http\Response|StreamedResponse|ResponseFactory
|
||||||
{
|
{
|
||||||
$this->authorize('manage backups');
|
$this->authorize('manage backups');
|
||||||
|
|
||||||
@@ -34,6 +42,9 @@ class DownloadBackupController extends ApiController
|
|||||||
return $this->respondWithBackupStream($backup);
|
return $this->respondWithBackupStream($backup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Respond with backup stream
|
||||||
|
*/
|
||||||
public function respondWithBackupStream(Backup $backup): StreamedResponse
|
public function respondWithBackupStream(Backup $backup): StreamedResponse
|
||||||
{
|
{
|
||||||
$fileName = pathinfo($backup->path(), PATHINFO_BASENAME);
|
$fileName = pathinfo($backup->path(), PATHINFO_BASENAME);
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class ApiTokenController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::checkToken($request->api_token);
|
|
||||||
|
|
||||||
return $response;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class CompleteModuleInstallationController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::complete($request->module, $request->version);
|
|
||||||
|
|
||||||
return response()->json([
|
|
||||||
'success' => $response,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class CopyModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::copyFiles($request->module, $request->path);
|
|
||||||
|
|
||||||
return response()->json([
|
|
||||||
'success' => $response,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Events\ModuleDisabledEvent;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\Module as ModelsModule;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Nwidart\Modules\Facades\Module;
|
|
||||||
|
|
||||||
class DisableModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request, string $module)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$module = ModelsModule::where('name', $module)->first();
|
|
||||||
$module->update(['enabled' => false]);
|
|
||||||
$installedModule = Module::find($module->name);
|
|
||||||
$installedModule->disable();
|
|
||||||
|
|
||||||
ModuleDisabledEvent::dispatch($module);
|
|
||||||
|
|
||||||
return response()->json(['success' => true]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class DownloadModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::download($request->module, $request->version);
|
|
||||||
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Events\ModuleEnabledEvent;
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Models\Module as ModelsModule;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
use Nwidart\Modules\Facades\Module;
|
|
||||||
|
|
||||||
class EnableModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request, string $module)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$module = ModelsModule::where('name', $module)->first();
|
|
||||||
$module->update(['enabled' => true]);
|
|
||||||
$installedModule = Module::find($module->name);
|
|
||||||
$installedModule->enable();
|
|
||||||
|
|
||||||
ModuleEnabledEvent::dispatch($module);
|
|
||||||
|
|
||||||
return response()->json(['success' => true]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Http\Resources\ModuleResource;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class ModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request, string $module)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::getModule($module);
|
|
||||||
|
|
||||||
if (! $response->success) {
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (new ModuleResource($response->module))
|
|
||||||
->additional(['meta' => [
|
|
||||||
'modules' => ModuleResource::collection(collect($response->modules)),
|
|
||||||
]]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin\Modules;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Requests\UnzipUpdateRequest;
|
||||||
|
use App\Http\Requests\UploadModuleRequest;
|
||||||
|
use App\Services\Module\ModuleInstaller;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class ModuleInstallationController extends Controller
|
||||||
|
{
|
||||||
|
public function download(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$response = ModuleInstaller::download($request->module, $request->version);
|
||||||
|
|
||||||
|
return response()->json($response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function upload(UploadModuleRequest $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$response = ModuleInstaller::upload($request);
|
||||||
|
|
||||||
|
return response()->json($response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function unzip(UnzipUpdateRequest $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$path = ModuleInstaller::unzip($request->module, $request->path);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'path' => $path,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function copy(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$response = ModuleInstaller::copyFiles($request->module, $request->path);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'success' => $response,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function complete(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$response = ModuleInstaller::complete($request->module, $request->version);
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'success' => $response,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,24 +2,73 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
namespace App\Http\Controllers\Admin\Modules;
|
||||||
|
|
||||||
|
use App\Events\ModuleDisabledEvent;
|
||||||
|
use App\Events\ModuleEnabledEvent;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Resources\ModuleResource;
|
||||||
|
use App\Models\Module as ModelsModule;
|
||||||
use App\Services\Module\ModuleInstaller;
|
use App\Services\Module\ModuleInstaller;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Nwidart\Modules\Facades\Module;
|
||||||
|
|
||||||
class ModulesController extends Controller
|
class ModulesController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
public function index(Request $request)
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(Request $request)
|
|
||||||
{
|
{
|
||||||
$this->authorize('manage modules');
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
$response = ModuleInstaller::getModules();
|
return ModuleInstaller::getModules();
|
||||||
|
}
|
||||||
|
|
||||||
return $response;
|
public function show(Request $request, string $module)
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$response = ModuleInstaller::getModule($module);
|
||||||
|
|
||||||
|
if (! $response->success) {
|
||||||
|
return response()->json($response);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (new ModuleResource($response->module))
|
||||||
|
->additional(['meta' => [
|
||||||
|
'modules' => ModuleResource::collection(collect($response->modules)),
|
||||||
|
]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function checkToken(Request $request): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
return ModuleInstaller::checkToken($request->api_token);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function enable(Request $request, string $module): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$module = ModelsModule::where('name', $module)->first();
|
||||||
|
$module->update(['enabled' => true]);
|
||||||
|
$installedModule = Module::find($module->name);
|
||||||
|
$installedModule->enable();
|
||||||
|
|
||||||
|
ModuleEnabledEvent::dispatch($module);
|
||||||
|
|
||||||
|
return response()->json(['success' => true]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function disable(Request $request, string $module): JsonResponse
|
||||||
|
{
|
||||||
|
$this->authorize('manage modules');
|
||||||
|
|
||||||
|
$module = ModelsModule::where('name', $module)->first();
|
||||||
|
$module->update(['enabled' => false]);
|
||||||
|
$installedModule = Module::find($module->name);
|
||||||
|
$installedModule->disable();
|
||||||
|
|
||||||
|
ModuleDisabledEvent::dispatch($module);
|
||||||
|
|
||||||
|
return response()->json(['success' => true]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Http\Requests\UnzipUpdateRequest;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class UnzipModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(UnzipUpdateRequest $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$path = ModuleInstaller::unzip($request->module, $request->path);
|
|
||||||
|
|
||||||
return response()->json([
|
|
||||||
'success' => true,
|
|
||||||
'path' => $path,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers\Admin\Modules;
|
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
|
||||||
use App\Http\Requests\UploadModuleRequest;
|
|
||||||
use App\Services\Module\ModuleInstaller;
|
|
||||||
use Illuminate\Http\Response;
|
|
||||||
|
|
||||||
class UploadModuleController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Handle the incoming request.
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function __invoke(UploadModuleRequest $request)
|
|
||||||
{
|
|
||||||
$this->authorize('manage modules');
|
|
||||||
|
|
||||||
$response = ModuleInstaller::upload($request);
|
|
||||||
|
|
||||||
return response()->json($response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,9 +7,10 @@ use App\Http\Requests\DiskEnvironmentRequest;
|
|||||||
use App\Http\Resources\FileDiskResource;
|
use App\Http\Resources\FileDiskResource;
|
||||||
use App\Models\FileDisk;
|
use App\Models\FileDisk;
|
||||||
use App\Services\FileDiskService;
|
use App\Services\FileDiskService;
|
||||||
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||||
|
|
||||||
class DiskController extends Controller
|
class DiskController extends Controller
|
||||||
{
|
{
|
||||||
@@ -18,9 +19,10 @@ class DiskController extends Controller
|
|||||||
) {}
|
) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return JsonResponse
|
* @throws AuthorizationException
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request): AnonymousResourceCollection
|
||||||
{
|
{
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
@@ -34,8 +36,11 @@ class DiskController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function store(DiskEnvironmentRequest $request)
|
public function store(DiskEnvironmentRequest $request): JsonResponse|FileDiskResource
|
||||||
{
|
{
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
@@ -49,10 +54,9 @@ class DiskController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param FileDisk $file_disk
|
* @throws AuthorizationException
|
||||||
* @return JsonResponse
|
|
||||||
*/
|
*/
|
||||||
public function update(FileDisk $disk, Request $request)
|
public function update(FileDisk $disk, Request $request): JsonResponse|FileDiskResource
|
||||||
{
|
{
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
@@ -74,10 +78,13 @@ class DiskController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return JsonResponse
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function show($disk)
|
public function show($disk): JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
$diskData = [];
|
$diskData = [];
|
||||||
@@ -143,9 +150,11 @@ class DiskController extends Controller
|
|||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*
|
*
|
||||||
* @param FileDisk $taxType
|
* @param FileDisk $taxType
|
||||||
* @return Response
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function destroy(FileDisk $disk)
|
public function destroy(FileDisk $disk): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
@@ -161,9 +170,10 @@ class DiskController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return JsonResponse
|
* @throws AuthorizationException
|
||||||
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function getDiskDrivers()
|
public function getDiskDrivers(): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage file disk');
|
$this->authorize('manage file disk');
|
||||||
|
|
||||||
|
|||||||
@@ -5,18 +5,18 @@ namespace App\Http\Controllers\Admin\Settings;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\GetSettingRequest;
|
use App\Http\Requests\GetSettingRequest;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
class GetSettingsController extends Controller
|
class GetSettingsController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Handle the incoming request.
|
* Handle the incoming request.
|
||||||
*
|
*
|
||||||
* @param Request $request
|
*
|
||||||
* @return Response
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function __invoke(GetSettingRequest $request)
|
public function __invoke(GetSettingRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage settings');
|
$this->authorize('manage settings');
|
||||||
|
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ class MailConfigurationController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Save the mail environment variables
|
* Save the mail environment variables
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
*
|
||||||
*
|
*
|
||||||
* @throws AuthorizationException
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function saveMailEnvironment(MailEnvironmentRequest $request)
|
public function saveMailEnvironment(MailEnvironmentRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage email config');
|
$this->authorize('manage email config');
|
||||||
|
|
||||||
@@ -60,10 +60,8 @@ class MailConfigurationController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare mail settings for database storage
|
* Prepare mail settings for database storage
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
*/
|
||||||
private function prepareMailSettingsForDatabase(MailEnvironmentRequest $request)
|
private function prepareMailSettingsForDatabase(MailEnvironmentRequest $request): array
|
||||||
{
|
{
|
||||||
$driver = $request->get('mail_driver');
|
$driver = $request->get('mail_driver');
|
||||||
|
|
||||||
@@ -120,11 +118,10 @@ class MailConfigurationController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Return the mail environment variables
|
* Return the mail environment variables
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
|
||||||
*
|
*
|
||||||
* @throws AuthorizationException
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function getMailEnvironment()
|
public function getMailEnvironment(): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage email config');
|
$this->authorize('manage email config');
|
||||||
|
|
||||||
@@ -211,11 +208,10 @@ class MailConfigurationController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Return the available mail drivers
|
* Return the available mail drivers
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
|
||||||
*
|
*
|
||||||
* @throws AuthorizationException
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function getMailDrivers()
|
public function getMailDrivers(): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage email config');
|
$this->authorize('manage email config');
|
||||||
|
|
||||||
@@ -233,12 +229,12 @@ class MailConfigurationController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Test the email configuration
|
* Test the email configuration
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
*
|
||||||
*
|
*
|
||||||
* @throws AuthorizationException
|
* @throws AuthorizationException
|
||||||
* @throws ValidationException
|
* @throws ValidationException
|
||||||
*/
|
*/
|
||||||
public function testEmailConfig(Request $request)
|
public function testEmailConfig(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage email config');
|
$this->authorize('manage email config');
|
||||||
|
|
||||||
|
|||||||
@@ -6,20 +6,27 @@ use App\Http\Controllers\Controller;
|
|||||||
use App\Http\Requests\PDFConfigurationRequest;
|
use App\Http\Requests\PDFConfigurationRequest;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use App\Services\Setup\EnvironmentManager;
|
use App\Services\Setup\EnvironmentManager;
|
||||||
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
class PDFConfigurationController extends Controller
|
class PDFConfigurationController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
protected EnvironmentManager $environmentManager;
|
||||||
* @var EnvironmentManager
|
|
||||||
*/
|
|
||||||
protected $environmentManager;
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
public function __construct(EnvironmentManager $environmentManager)
|
public function __construct(EnvironmentManager $environmentManager)
|
||||||
{
|
{
|
||||||
$this->environmentManager = $environmentManager;
|
$this->environmentManager = $environmentManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDrivers()
|
/**
|
||||||
|
* Returns the available drivers
|
||||||
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
*/
|
||||||
|
public function getDrivers(): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage pdf config');
|
$this->authorize('manage pdf config');
|
||||||
|
|
||||||
@@ -31,7 +38,12 @@ class PDFConfigurationController extends Controller
|
|||||||
return response()->json($drivers);
|
return response()->json($drivers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getEnvironment()
|
/**
|
||||||
|
* Return the PDF settings
|
||||||
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
*/
|
||||||
|
public function getEnvironment(): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage pdf config');
|
$this->authorize('manage pdf config');
|
||||||
|
|
||||||
@@ -53,7 +65,12 @@ class PDFConfigurationController extends Controller
|
|||||||
return response()->json($config);
|
return response()->json($config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveEnvironment(PDFConfigurationRequest $request)
|
/**
|
||||||
|
* Saves the settings
|
||||||
|
*
|
||||||
|
* @throws AuthorizationException
|
||||||
|
*/
|
||||||
|
public function saveEnvironment(PDFConfigurationRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage pdf config');
|
$this->authorize('manage pdf config');
|
||||||
|
|
||||||
@@ -70,10 +87,8 @@ class PDFConfigurationController extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare PDF settings for database storage
|
* Prepare PDF settings for database storage
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
*/
|
||||||
private function preparePDFSettingsForDatabase(PDFConfigurationRequest $request)
|
private function preparePDFSettingsForDatabase(PDFConfigurationRequest $request): array
|
||||||
{
|
{
|
||||||
$driver = $request->get('pdf_driver');
|
$driver = $request->get('pdf_driver');
|
||||||
|
|
||||||
|
|||||||
@@ -5,18 +5,18 @@ namespace App\Http\Controllers\Admin\Settings;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\SettingRequest;
|
use App\Http\Requests\SettingRequest;
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Auth\Access\AuthorizationException;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
|
||||||
class UpdateSettingsController extends Controller
|
class UpdateSettingsController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Handle the incoming request.
|
* Handle the incoming request.
|
||||||
*
|
*
|
||||||
* @param Request $request
|
*
|
||||||
* @return Response
|
* @throws AuthorizationException
|
||||||
*/
|
*/
|
||||||
public function __invoke(SettingRequest $request)
|
public function __invoke(SettingRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$this->authorize('manage settings');
|
$this->authorize('manage settings');
|
||||||
|
|
||||||
|
|||||||
@@ -60,39 +60,27 @@ class DashboardController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
while ($monthCounter < 12) {
|
while ($monthCounter < 12) {
|
||||||
array_push(
|
$invoice_totals[] = Invoice::whereBetween(
|
||||||
$invoice_totals,
|
'invoice_date',
|
||||||
Invoice::whereBetween(
|
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
||||||
'invoice_date',
|
)
|
||||||
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
->whereCompany()
|
||||||
)
|
->sum('base_total');
|
||||||
->whereCompany()
|
$expense_totals[] = Expense::whereBetween(
|
||||||
->sum('base_total')
|
'expense_date',
|
||||||
);
|
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
||||||
array_push(
|
)
|
||||||
$expense_totals,
|
->whereCompany()
|
||||||
Expense::whereBetween(
|
->sum('base_amount');
|
||||||
'expense_date',
|
$receipt_totals[] = Payment::whereBetween(
|
||||||
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
'payment_date',
|
||||||
)
|
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
||||||
->whereCompany()
|
)
|
||||||
->sum('base_amount')
|
->whereCompany()
|
||||||
);
|
->sum('base_amount');
|
||||||
array_push(
|
$net_income_totals[] = ($receipt_totals[$i] - $expense_totals[$i]);
|
||||||
$receipt_totals,
|
|
||||||
Payment::whereBetween(
|
|
||||||
'payment_date',
|
|
||||||
[$start->format('Y-m-d'), $end->format('Y-m-d')]
|
|
||||||
)
|
|
||||||
->whereCompany()
|
|
||||||
->sum('base_amount')
|
|
||||||
);
|
|
||||||
array_push(
|
|
||||||
$net_income_totals,
|
|
||||||
($receipt_totals[$i] - $expense_totals[$i])
|
|
||||||
);
|
|
||||||
$i++;
|
$i++;
|
||||||
array_push($months, $start->translatedFormat('M'));
|
$months[] = $start->translatedFormat('M');
|
||||||
$monthCounter++;
|
$monthCounter++;
|
||||||
$end->startOfMonth();
|
$end->startOfMonth();
|
||||||
$start->addMonth()->startOfMonth();
|
$start->addMonth()->startOfMonth();
|
||||||
|
|||||||
@@ -4,16 +4,8 @@ use App\Http\Controllers\Admin\Backup\BackupsController;
|
|||||||
use App\Http\Controllers\Admin\Backup\DownloadBackupController;
|
use App\Http\Controllers\Admin\Backup\DownloadBackupController;
|
||||||
use App\Http\Controllers\Admin\CountriesController;
|
use App\Http\Controllers\Admin\CountriesController;
|
||||||
use App\Http\Controllers\Admin\CurrenciesController;
|
use App\Http\Controllers\Admin\CurrenciesController;
|
||||||
use App\Http\Controllers\Admin\Modules\ApiTokenController;
|
use App\Http\Controllers\Admin\Modules\ModuleInstallationController;
|
||||||
use App\Http\Controllers\Admin\Modules\CompleteModuleInstallationController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\CopyModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\DisableModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\DownloadModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\EnableModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\ModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\ModulesController;
|
use App\Http\Controllers\Admin\Modules\ModulesController;
|
||||||
use App\Http\Controllers\Admin\Modules\UnzipModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Modules\UploadModuleController;
|
|
||||||
use App\Http\Controllers\Admin\Settings\DiskController;
|
use App\Http\Controllers\Admin\Settings\DiskController;
|
||||||
use App\Http\Controllers\Admin\Settings\GetSettingsController;
|
use App\Http\Controllers\Admin\Settings\GetSettingsController;
|
||||||
use App\Http\Controllers\Admin\Settings\MailConfigurationController;
|
use App\Http\Controllers\Admin\Settings\MailConfigurationController;
|
||||||
@@ -459,25 +451,17 @@ Route::prefix('/v1')->group(function () {
|
|||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|
||||||
Route::prefix('/modules')->group(function () {
|
Route::prefix('/modules')->group(function () {
|
||||||
Route::get('/', ModulesController::class);
|
Route::get('/', [ModulesController::class, 'index']);
|
||||||
|
Route::get('/check', [ModulesController::class, 'checkToken']);
|
||||||
|
Route::get('/{module}', [ModulesController::class, 'show']);
|
||||||
|
Route::post('/{module}/enable', [ModulesController::class, 'enable']);
|
||||||
|
Route::post('/{module}/disable', [ModulesController::class, 'disable']);
|
||||||
|
|
||||||
Route::get('/check', ApiTokenController::class);
|
Route::post('/download', [ModuleInstallationController::class, 'download']);
|
||||||
|
Route::post('/upload', [ModuleInstallationController::class, 'upload']);
|
||||||
Route::get('/{module}', ModuleController::class);
|
Route::post('/unzip', [ModuleInstallationController::class, 'unzip']);
|
||||||
|
Route::post('/copy', [ModuleInstallationController::class, 'copy']);
|
||||||
Route::post('/{module}/enable', EnableModuleController::class);
|
Route::post('/complete', [ModuleInstallationController::class, 'complete']);
|
||||||
|
|
||||||
Route::post('/{module}/disable', DisableModuleController::class);
|
|
||||||
|
|
||||||
Route::post('/download', DownloadModuleController::class);
|
|
||||||
|
|
||||||
Route::post('/upload', UploadModuleController::class);
|
|
||||||
|
|
||||||
Route::post('/unzip', UnzipModuleController::class);
|
|
||||||
|
|
||||||
Route::post('/copy', CopyModuleController::class);
|
|
||||||
|
|
||||||
Route::post('/complete', CompleteModuleInstallationController::class);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user