From b9e34ff25cded078c543f942518a1525aad0834b Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski Date: Fri, 3 Apr 2026 22:11:16 +0200 Subject: [PATCH] Consolidate Company/Settings: 7 controllers -> 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge CompanyCurrencyCheckTransactionsController into CompanySettingsController as checkTransactions() method. Merge UserSettingsController into UserProfileController as showSettings() and updateSettings() methods — both operate on the authenticated user (/me routes). --- ...anyCurrencyCheckTransactionsController.php | 27 ----------------- .../Settings/CompanySettingsController.php | 12 ++++++++ .../Settings/UserProfileController.php | 21 ++++++++++++++ .../Settings/UserSettingsController.php | 29 ------------------- routes/api.php | 8 ++--- 5 files changed, 36 insertions(+), 61 deletions(-) delete mode 100644 app/Http/Controllers/Company/Settings/CompanyCurrencyCheckTransactionsController.php delete mode 100644 app/Http/Controllers/Company/Settings/UserSettingsController.php diff --git a/app/Http/Controllers/Company/Settings/CompanyCurrencyCheckTransactionsController.php b/app/Http/Controllers/Company/Settings/CompanyCurrencyCheckTransactionsController.php deleted file mode 100644 index 05b2c1d8..00000000 --- a/app/Http/Controllers/Company/Settings/CompanyCurrencyCheckTransactionsController.php +++ /dev/null @@ -1,27 +0,0 @@ -header('company')); - - $this->authorize('manage company', $company); - - return response()->json([ - 'has_transactions' => $company->hasTransactions(), - ]); - } -} diff --git a/app/Http/Controllers/Company/Settings/CompanySettingsController.php b/app/Http/Controllers/Company/Settings/CompanySettingsController.php index d23d4dcc..1a5bb288 100644 --- a/app/Http/Controllers/Company/Settings/CompanySettingsController.php +++ b/app/Http/Controllers/Company/Settings/CompanySettingsController.php @@ -8,6 +8,7 @@ use App\Http\Requests\UpdateSettingsRequest; use App\Models\Company; use App\Models\CompanySetting; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; use Illuminate\Support\Arr; class CompanySettingsController extends Controller @@ -43,4 +44,15 @@ class CompanySettingsController extends Controller 'success' => true, ]); } + + public function checkTransactions(Request $request): JsonResponse + { + $company = Company::find($request->header('company')); + + $this->authorize('manage company', $company); + + return response()->json([ + 'has_transactions' => $company->hasTransactions(), + ]); + } } diff --git a/app/Http/Controllers/Company/Settings/UserProfileController.php b/app/Http/Controllers/Company/Settings/UserProfileController.php index f85e2482..a8a705a3 100644 --- a/app/Http/Controllers/Company/Settings/UserProfileController.php +++ b/app/Http/Controllers/Company/Settings/UserProfileController.php @@ -4,8 +4,11 @@ namespace App\Http\Controllers\Company\Settings; use App\Http\Controllers\Controller; use App\Http\Requests\AvatarRequest; +use App\Http\Requests\GetSettingsRequest; use App\Http\Requests\ProfileRequest; +use App\Http\Requests\UpdateSettingsRequest; use App\Http\Resources\UserResource; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class UserProfileController extends Controller @@ -49,4 +52,22 @@ class UserProfileController extends Controller return new UserResource($user); } + + public function showSettings(GetSettingsRequest $request): JsonResponse + { + $user = $request->user(); + + return response()->json($user->getSettings((array) $request->settings)); + } + + public function updateSettings(UpdateSettingsRequest $request): JsonResponse + { + $user = $request->user(); + + $user->setSettings($request->settings); + + return response()->json([ + 'success' => true, + ]); + } } diff --git a/app/Http/Controllers/Company/Settings/UserSettingsController.php b/app/Http/Controllers/Company/Settings/UserSettingsController.php deleted file mode 100644 index e0cf5618..00000000 --- a/app/Http/Controllers/Company/Settings/UserSettingsController.php +++ /dev/null @@ -1,29 +0,0 @@ -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, - ]); - } -} diff --git a/routes/api.php b/routes/api.php index de0adc55..ba45d7af 100644 --- a/routes/api.php +++ b/routes/api.php @@ -41,12 +41,10 @@ use App\Http\Controllers\Company\RecurringInvoice\RecurringInvoiceFrequencyContr use App\Http\Controllers\Company\Role\AbilitiesController; use App\Http\Controllers\Company\Role\RolesController; use App\Http\Controllers\Company\Settings\CompanyController; -use App\Http\Controllers\Company\Settings\CompanyCurrencyCheckTransactionsController; use App\Http\Controllers\Company\Settings\CompanyMailConfigurationController; use App\Http\Controllers\Company\Settings\CompanySettingsController; use App\Http\Controllers\Company\Settings\TaxTypesController; use App\Http\Controllers\Company\Settings\UserProfileController; -use App\Http\Controllers\Company\Settings\UserSettingsController; use App\Http\Controllers\Company\Users\UsersController; use App\Http\Controllers\CustomerPortal\Auth\ForgotPasswordController as AuthForgotPasswordController; use App\Http\Controllers\CustomerPortal\Auth\ResetPasswordController as AuthResetPasswordController; @@ -343,9 +341,9 @@ Route::prefix('/v1')->group(function () { Route::put('/me', [UserProfileController::class, 'update']); - Route::get('/me/settings', [UserSettingsController::class, 'show']); + Route::get('/me/settings', [UserProfileController::class, 'showSettings']); - Route::put('/me/settings', [UserSettingsController::class, 'update']); + Route::put('/me/settings', [UserProfileController::class, 'updateSettings']); Route::post('/me/upload-avatar', [UserProfileController::class, 'uploadAvatar']); @@ -361,7 +359,7 @@ Route::prefix('/v1')->group(function () { Route::post('/settings', [SettingsController::class, 'update']); - Route::get('/company/has-transactions', CompanyCurrencyCheckTransactionsController::class); + Route::get('/company/has-transactions', [CompanySettingsController::class, 'checkTransactions']); // Mails // ----------------------------------