- Fix npm scoped package support (filter time metadata keys, make description optional, exclude falsy releases from version selection) - Fix timetable date formatting (use Intl.DateTimeFormat for stable MM/DD/YYYY output) and named zod import - Guard migration 0000 against unknown provider keys - Fix migration 0003 to delete integration links by integrationId - Reset immich album carousel index when photo list changes - Add bounded limit to timetable router input - Remove stale misspelled noProviderSeleceted translation key - Fix provider name visibility in release widget settings - Update docs: add ArchiveTeam Warrior note, fix typos, correct showPhotoInfo default
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import z from "zod";
|
|
|
|
import {
|
|
timetableGetTimetableRequestHandler,
|
|
timetableSearchStationsRequestHandler,
|
|
} from "@homarr/request-handler/timetable";
|
|
|
|
import { createTRPCRouter, publicProcedure } from "../../trpc";
|
|
|
|
const baseUrlSchema = z.string().url();
|
|
|
|
export const timetableRouter = createTRPCRouter({
|
|
getTimetable: publicProcedure
|
|
.input(
|
|
z.object({
|
|
baseUrl: baseUrlSchema,
|
|
stationId: z.string(),
|
|
limit: z.number().int().min(1).max(100),
|
|
}),
|
|
)
|
|
.query(async ({ input }) => {
|
|
const innerHandler = timetableGetTimetableRequestHandler.handler({
|
|
baseUrl: input.baseUrl,
|
|
stationId: input.stationId,
|
|
limit: input.limit,
|
|
});
|
|
|
|
const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
|
|
|
|
return data;
|
|
}),
|
|
searchStations: publicProcedure
|
|
.input(
|
|
z.object({
|
|
baseUrl: baseUrlSchema,
|
|
query: z.string(),
|
|
}),
|
|
)
|
|
.query(async ({ input }) => {
|
|
const innerHandler = timetableSearchStationsRequestHandler.handler({
|
|
baseUrl: input.baseUrl,
|
|
query: input.query,
|
|
});
|
|
|
|
const { data } = await innerHandler.getCachedOrUpdatedDataAsync({ forceUpdate: false });
|
|
|
|
return data;
|
|
}),
|
|
});
|