2023-05-29 09:43:25 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use App\Http\Requests\StoreUserAppSettings;
|
|
|
|
|
use App\Http\Resources\UserAppSettingsResource;
|
2025-12-20 07:39:10 +00:00
|
|
|
use App\Models\UserAppSettings;
|
|
|
|
|
use App\Services\Account\AccountAppSettingsService;
|
|
|
|
|
use Illuminate\Http\Request;
|
2023-05-29 09:43:25 +00:00
|
|
|
|
|
|
|
|
class UserAppSettingsController extends Controller
|
|
|
|
|
{
|
|
|
|
|
public function __construct()
|
|
|
|
|
{
|
2025-12-20 07:39:10 +00:00
|
|
|
$this->middleware('auth');
|
2023-05-29 09:43:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get(Request $request)
|
|
|
|
|
{
|
2025-12-20 07:39:10 +00:00
|
|
|
abort_if(! $request->user(), 403);
|
2023-05-29 09:43:25 +00:00
|
|
|
|
2025-12-20 07:39:10 +00:00
|
|
|
$settings = UserAppSettings::whereUserId($request->user()->id)->first();
|
2023-05-29 09:43:25 +00:00
|
|
|
|
2025-12-20 07:39:10 +00:00
|
|
|
if (! $settings) {
|
|
|
|
|
return [
|
|
|
|
|
'id' => (string) $request->user()->profile_id,
|
|
|
|
|
'username' => $request->user()->username,
|
|
|
|
|
'updated_at' => null,
|
|
|
|
|
'common' => AccountAppSettingsService::default(),
|
|
|
|
|
];
|
|
|
|
|
}
|
2023-05-29 09:43:25 +00:00
|
|
|
|
2025-12-20 07:39:10 +00:00
|
|
|
return new UserAppSettingsResource($settings);
|
2023-05-29 09:43:25 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function store(StoreUserAppSettings $request)
|
|
|
|
|
{
|
2025-12-20 07:39:10 +00:00
|
|
|
$res = UserAppSettings::updateOrCreate([
|
|
|
|
|
'user_id' => $request->user()->id,
|
|
|
|
|
], [
|
|
|
|
|
'profile_id' => $request->user()->profile_id,
|
|
|
|
|
'common' => $request->common,
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return new UserAppSettingsResource($res);
|
2023-05-29 09:43:25 +00:00
|
|
|
}
|
|
|
|
|
}
|