Consolidate Admin Settings controllers: merge Get/Update pairs

Merge GetCompanySettingsController + UpdateCompanySettingsController into
CompanySettingsController with show() and update() methods.

Merge GetUserSettingsController + UpdateUserSettingsController into
UserSettingsController with show() and update() methods.

Absorb GetCompanyMailConfigurationController into
CompanyMailConfigurationController as getDefaultConfig() method.

Removes 5 single-action controllers, down to 4 Settings controllers.
This commit is contained in:
Darko Gjorgjijoski
2026-04-03 17:18:48 +02:00
parent bbf46577dc
commit 6b5e4878fb
8 changed files with 56 additions and 118 deletions

View File

@@ -12,6 +12,16 @@ use Mail;
class CompanyMailConfigurationController extends Controller
{
public function getDefaultConfig(Request $request): JsonResponse
{
$mailConfig = [
'from_name' => config('mail.from.name'),
'from_mail' => config('mail.from.address'),
];
return response()->json($mailConfig);
}
public function getMailConfig(Request $request): JsonResponse
{
$companyId = $request->header('company');

View File

@@ -3,21 +3,23 @@
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\GetSettingsRequest;
use App\Http\Requests\UpdateSettingsRequest;
use App\Models\Company;
use App\Models\CompanySetting;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Arr;
class UpdateCompanySettingsController extends Controller
class CompanySettingsController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\UpdateSettingsRequest $request
* @return JsonResponse
*/
public function __invoke(UpdateSettingsRequest $request)
public function show(GetSettingsRequest $request): JsonResponse
{
$settings = CompanySetting::getSettings((array) $request->settings, $request->header('company'));
return response()->json($settings);
}
public function update(UpdateSettingsRequest $request): JsonResponse
{
$company = Company::find($request->header('company'));
$this->authorize('manage company', $company);

View File

@@ -1,25 +0,0 @@
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class GetCompanyMailConfigurationController extends Controller
{
/**
* Handle the incoming request.
*
* @return Response
*/
public function __invoke(Request $request)
{
$mailConfig = [
'from_name' => config('mail.from.name'),
'from_mail' => config('mail.from.address'),
];
return response()->json($mailConfig);
}
}

View File

@@ -1,25 +0,0 @@
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\GetSettingsRequest;
use App\Models\CompanySetting;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class GetCompanySettingsController extends Controller
{
/**
* Handle the incoming request.
*
* @param Request $request
* @return JsonResponse
*/
public function __invoke(GetSettingsRequest $request)
{
$settings = CompanySetting::getSettings((array) $request->settings, $request->header('company'));
return response()->json($settings);
}
}

View File

@@ -1,23 +0,0 @@
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\GetSettingsRequest;
use Illuminate\Http\JsonResponse;
class GetUserSettingsController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\GetSettingsRequest $request
* @return JsonResponse
*/
public function __invoke(GetSettingsRequest $request)
{
$user = $request->user();
return response()->json($user->getSettings((array) $request->settings));
}
}

View File

@@ -1,27 +0,0 @@
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\UpdateSettingsRequest;
use Illuminate\Http\Response;
class UpdateUserSettingsController extends Controller
{
/**
* Handle the incoming request.
*
* @param \Illuminate\Http\UpdateSettingsRequest $request
* @return Response
*/
public function __invoke(UpdateSettingsRequest $request)
{
$user = $request->user();
$user->setSettings($request->settings);
return response()->json([
'success' => true,
]);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Controllers\V1\Admin\Settings;
use App\Http\Controllers\Controller;
use App\Http\Requests\GetSettingsRequest;
use App\Http\Requests\UpdateSettingsRequest;
use Illuminate\Http\JsonResponse;
class UserSettingsController extends Controller
{
public function show(GetSettingsRequest $request): JsonResponse
{
$user = $request->user();
return response()->json($user->getSettings((array) $request->settings));
}
public function update(UpdateSettingsRequest $request): JsonResponse
{
$user = $request->user();
$user->setSettings($request->settings);
return response()->json([
'success' => true,
]);
}
}