Skip to content

feat(api): add GET /ping/time server clock endpoint - #453

Merged
Dasa122 merged 2 commits into
mainfrom
feat/server-time-endpoint
Nov 10, 2026
Merged

Dasa122 merged 2 commits into
mainfrom
feat/server-time-endpoint

Conversation

@Dasa122

@Dasa122 Dasa122 commented Nov 10, 2026

Copy link
Copy Markdown
Member

Summary

Closes #451

Adds a public GET /ping/time endpoint that returns the server clock in the
school's timezone, so clients (kiosk, mobile) can render an authoritative
local date and UTC offset instead of trusting the device clock. The timezone
is configurable with CHRONOS_TIME_ZONE and defaults to Europe/Budapest.

Changes

  • GET /api/ping/time → { iso, unixMs, date, timeZone, offsetMinutes }, public and unauthenticated like /ping and /ping/uptime.
  • offsetMinutes is DST-correct for the configured zone; date is that zone's calendar date, not UTC's.
  • New CHRONOS_TIME_ZONE env var (validated as an IANA zone, default Europe/Budapest), documented in apps/chronos/.env.example.
  • Timetable weekday lookups now use the same configured zone (getWeekdayInSchoolTimeZone).
  • OpenAPI document regenerated (/ping/time added).

Verification

  • bun lint
  • bun typecheck
  • bun run build — contract and module router changed
  • bun run openapi:check — regenerated document matches the contract

@filc-preview-vm

filc-preview-vm Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

🗑️ Preview removed

Environment pr-453.preview.filc.petrik.hu
Commit 063ac85
URL https://pr-453.preview.filc.petrik.hu
Edge check —

Posted by filc-deployer. The preview database is its own container and is
destroyed when this pull request closes.

merenyimiklos
merenyimiklos previously approved these changes Nov 10, 2026
@merenyimiklos

Copy link
Copy Markdown
Contributor

[P1] Az iskolai időzóna egységes használata a dátumkezelésben

Az új végpont és a hét napjának meghatározása már a "CHRONOS_TIME_ZONE" beállítást használja, viszont a "toDateOnlyString()" továbbra is a szerver helyi időzónájára támaszkodik.

Ez eltérő dátumokat eredményezhet, ha a szerver UTC időzónában fut.

Példa:

  • Szerveridő: "2026-11-10 23:30 UTC"
  • Budapesti idő: "2026-11-11 00:30"
  • "/ping/time" eredménye: "2026-11-11"
  • "toDateOnlyString()" eredménye: "2026-11-10"

Ez az aktív órarend kiválasztását is érinti a "getTimetableIdForDate()" függvényen keresztül.

Javaslat: A közös dátumkezelő függvény is a konfigurált iskolai időzónát használja. Közben figyelni kell arra, hogy ne alakuljon ki körkörös import a "date.ts" és az "environment.ts" között.

@merenyimiklos

Copy link
Copy Markdown
Contributor

[P2] A YYYY-MM-DD dátumformátum garantálása

A válaszséma szerint a "date" mező formátuma "YYYY-MM-DD", azonban az "Intl.DateTimeFormat('en-CA')" nem garantálja minden JavaScript-futtatókörnyezetben és ICU-konfigurációban pontosan ezt a formátumot.

Javaslat: Érdemes lenne a "formatToParts()" segítségével külön kinyerni az évet, hónapot és napot, majd ezekből összeállítani a dátumot.

Így az API minden környezetben egységes formátumot adna vissza.

@merenyimiklos

merenyimiklos commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

[P3] Automatikus tesztek hozzáadása az időzóna-kezeléshez

A megvalósítás alapvetően megfelelőnek tűnik, viszont a PR új időzónafüggő működést vezet be célzott tesztek nélkül.

Érdemes lenne az alábbi eseteket lefedni:

  • Téli időszámítás (UTC+1)
  • Nyári időszámítás (UTC+2)
  • Óraátállítás időpontja
  • UTC és budapesti dátum eltérése éjfél körül
  • Hibás "CHRONOS_TIME_ZONE" konfiguráció
  • Az API által visszaadott dátum és az órarend dátumkezelésének egyezése

Ezekkel megelőzhetők lennének a későbbi dátumkezelési hibák és regressziók.

@filc-preview-vm
filc-preview-vm Bot temporarily deployed to preview-pr-453 November 10, 2026 15:35 Destroyed
@Dasa122
Dasa122 merged commit cd10c4a into main Nov 10, 2026
6 checks passed
@Dasa122
Dasa122 deleted the feat/server-time-endpoint branch November 10, 2026 15:43
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Filc Issue Tracker Nov 10, 2026

This branch was successfully deployed

No deployments
preview-pr-453 — 063ac85f Deployed Nov 10, 2026 by filc-preview-vm[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Date and time api endpoint

2 participants