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:
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -59,12 +59,9 @@ use App\Http\Controllers\V1\Admin\Role\RolesController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\CompanyController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\CompanyCurrencyCheckTransactionsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\CompanyMailConfigurationController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\GetCompanyMailConfigurationController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\GetCompanySettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\GetUserSettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\CompanySettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\TaxTypesController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\UpdateCompanySettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\UpdateUserSettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Settings\UserSettingsController;
|
||||
use App\Http\Controllers\V1\Admin\Users\UsersController;
|
||||
use App\Http\Controllers\V1\Customer\Auth\ForgotPasswordController as AuthForgotPasswordController;
|
||||
use App\Http\Controllers\V1\Customer\Auth\ResetPasswordController as AuthResetPasswordController;
|
||||
@@ -385,9 +382,9 @@ Route::prefix('/v1')->group(function () {
|
||||
|
||||
Route::put('/me', [CompanyController::class, 'updateProfile']);
|
||||
|
||||
Route::get('/me/settings', GetUserSettingsController::class);
|
||||
Route::get('/me/settings', [UserSettingsController::class, 'show']);
|
||||
|
||||
Route::put('/me/settings', UpdateUserSettingsController::class);
|
||||
Route::put('/me/settings', [UserSettingsController::class, 'update']);
|
||||
|
||||
Route::post('/me/upload-avatar', [CompanyController::class, 'uploadAvatar']);
|
||||
|
||||
@@ -395,9 +392,9 @@ Route::prefix('/v1')->group(function () {
|
||||
|
||||
Route::post('/company/upload-logo', [CompanyController::class, 'uploadCompanyLogo']);
|
||||
|
||||
Route::get('/company/settings', GetCompanySettingsController::class);
|
||||
Route::get('/company/settings', [CompanySettingsController::class, 'show']);
|
||||
|
||||
Route::post('/company/settings', UpdateCompanySettingsController::class);
|
||||
Route::post('/company/settings', [CompanySettingsController::class, 'update']);
|
||||
|
||||
Route::get('/settings', GetSettingsController::class);
|
||||
|
||||
@@ -416,7 +413,7 @@ Route::prefix('/v1')->group(function () {
|
||||
|
||||
Route::post('/mail/test', [MailConfigurationController::class, 'testEmailConfig']);
|
||||
|
||||
Route::get('/company/mail/config', GetCompanyMailConfigurationController::class);
|
||||
Route::get('/company/mail/config', [CompanyMailConfigurationController::class, 'getDefaultConfig']);
|
||||
|
||||
Route::get('/company/mail/company-config', [CompanyMailConfigurationController::class, 'getMailConfig']);
|
||||
Route::post('/company/mail/company-config', [CompanyMailConfigurationController::class, 'saveMailConfig']);
|
||||
|
||||
Reference in New Issue
Block a user