feat: manage user timezone (monicahq/chandler#44)

This commit is contained in:
Regis Freyd
2022-02-22 21:39:07 -05:00
committed by GitHub
parent 4b32b12c74
commit 8fcb468252
14 changed files with 767 additions and 4 deletions
@@ -0,0 +1,27 @@
<?php
namespace App\Http\Controllers\Settings\Preferences;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Services\User\StoreTimezone;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Settings\Preferences\ViewHelpers\PreferencesIndexViewHelper;
class PreferencesTimezoneController extends Controller
{
public function store(Request $request)
{
$data = [
'account_id' => Auth::user()->account_id,
'author_id' => Auth::user()->id,
'timezone' => $request->input('timezone'),
];
$user = (new StoreTimezone)->execute($data);
return response()->json([
'data' => PreferencesIndexViewHelper::dtoTimezone($user),
], 200);
}
}
@@ -14,6 +14,7 @@ class PreferencesIndexViewHelper
return [
'name_order' => self::dtoNameOrder($user),
'date_format' => self::dtoDateFormat($user),
'timezone' => self::dtoTimezone($user),
'url' => [
'settings' => route('settings.index'),
'back' => route('settings.index'),
@@ -77,4 +78,14 @@ class PreferencesIndexViewHelper
],
];
}
public static function dtoTimezone(User $user): array
{
return [
'timezone' => $user->timezone,
'url' => [
'store' => route('settings.preferences.timezone.store'),
],
];
}
}