Skip to content

Commit 04df91e

Browse files
committed
refactor: improve timezone handling in TzMiddleware and enhance error response for empty timezone
1 parent 710710c commit 04df91e

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

app/Middleware/TzMiddleware.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,25 @@
22

33
namespace App\Middleware;
44

5+
use App\Response\JsonResponse;
56
use Closure;
67
use Core\Auth\Auth;
78
use Core\Http\Request;
89
use Core\Middleware\MiddlewareInterface;
910
use Core\Support\Env;
1011
use Core\Support\Time;
12+
use DateTimeZone;
1113

1214
final class TzMiddleware implements MiddlewareInterface
1315
{
1416
public function handle(Request $request, Closure $next)
1517
{
16-
// override default timezone from env.
17-
Env::set('TIMEZONE', Auth::user()->tz);
18+
$tz = Auth::user()->getTimezone();
19+
if (!in_array($tz, DateTimeZone::listIdentifiers(), true)) {
20+
return (new JsonResponse)->errorBadRequest(['Invalid time zone']);
21+
}
22+
23+
Env::set('TIMEZONE', $tz);
1824
Time::setTimezoneDefault();
1925

2026
return $next($request);

0 commit comments

Comments
 (0)