Files
htwkalender-pwa/frontend/src/api/fetchRoom.ts
2024-04-02 11:47:47 +02:00

53 lines
1.7 KiB
TypeScript

//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
//Copyright (C) 2024 HTWKalender support@htwkalender.de
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU Affero General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU Affero General Public License for more details.
//You should have received a copy of the GNU Affero General Public License
//along with this program. If not, see <https://www.gnu.org/licenses/>.
import { AnonymizedEventDTO } from "../model/event.ts";
export async function fetchRoom(): Promise<string[]> {
const rooms: string[] = [];
await fetch("/api/rooms")
.then((response) => {
return response.json();
})
.then((roomsResponse: [] | null) => {
roomsResponse?.forEach((room: string) => rooms.push(room));
});
return rooms;
}
export async function fetchEventsByRoomAndDuration(
room: string,
from_date: string,
to_date: string,
): Promise<AnonymizedEventDTO[]> {
const events: AnonymizedEventDTO[] = [];
await fetch(
"/api/schedule?room=" + room + "&from=" + from_date + "&to=" + to_date,
)
.then((response) => {
return response.json();
})
.then((eventsResponse: [] | null) => {
eventsResponse?.forEach((event: AnonymizedEventDTO) =>
events.push(event),
);
})
.catch((error) => {
return Promise.reject(error);
});
return events;
}