From 5da4f26f6776672fd641fdd80c7021299a3e9595 Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Sun, 19 Jan 2020 13:07:22 +0100 Subject: [PATCH] Add simple getTimtable methods --- src/main/java/ley/untis/UntisClient.java | 31 ++++++++++++++++ src/main/java/ley/untis/data/Constants.java | 3 +- .../untis/data/SimpleTimetableDateParams.java | 13 +++++++ .../ley/untis/data/SimpleTimetableParams.java | 12 ++++++ .../ley/untis/data/TimetableResponse.java | 37 +++++++++++++++++++ 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/main/java/ley/untis/data/SimpleTimetableDateParams.java create mode 100644 src/main/java/ley/untis/data/SimpleTimetableParams.java create mode 100644 src/main/java/ley/untis/data/TimetableResponse.java diff --git a/src/main/java/ley/untis/UntisClient.java b/src/main/java/ley/untis/UntisClient.java index fe8f9a7..70fbe6f 100644 --- a/src/main/java/ley/untis/UntisClient.java +++ b/src/main/java/ley/untis/UntisClient.java @@ -228,5 +228,36 @@ public class UntisClient { } } + /** + * Get timetable for klasse, teacher, student, room, subject + * @param id the id of the element + * @param type the type of the element (use Constants class for this) + * @return an ArrayList of period objects + * @throws APIRequestException + */ + public TimetableResponse getTimetable(int id, int type) throws APIRequestException { + try { + return client.invoke("getTimetable", new SimpleTimetableParams(id, type), TimetableResponse.class); + } catch (Throwable e) { + throw new APIRequestException(e); + } + } + + /** + * Get timetable for klasse, teacher, student, room, subject + * @param id the id of the element + * @param type the type of the element (use Constants class for this) + * @param startDate the start date of the requested days + * @param endDate the end date of the requested days + * @return an ArrayList of period objects + * @throws APIRequestException + */ + public TimetableResponse getTimetable(int id, int type, int startDate, int endDate) throws APIRequestException { + try { + return client.invoke("getTimetable", new SimpleTimetableDateParams(id, type, startDate, endDate), TimetableResponse.class); + } catch (Throwable e) { + throw new APIRequestException(e); + } + } } diff --git a/src/main/java/ley/untis/data/Constants.java b/src/main/java/ley/untis/data/Constants.java index 055f121..0f593c6 100644 --- a/src/main/java/ley/untis/data/Constants.java +++ b/src/main/java/ley/untis/data/Constants.java @@ -2,6 +2,7 @@ package ley.untis.data; public class Constants { + //Days public static final int SUNDAY = 1; public static final int MONDAY = 2; public static final int TUESDAY = 3; @@ -9,7 +10,7 @@ public class Constants { public static final int THURSDAY = 5; public static final int FRIDAY = 6; public static final int SATURDAY = 7; - + //Types public static final int KLASSE = 1; public static final int TEACHER = 2; public static final int ROOM = 3; diff --git a/src/main/java/ley/untis/data/SimpleTimetableDateParams.java b/src/main/java/ley/untis/data/SimpleTimetableDateParams.java new file mode 100644 index 0000000..0188dbd --- /dev/null +++ b/src/main/java/ley/untis/data/SimpleTimetableDateParams.java @@ -0,0 +1,13 @@ +package ley.untis.data; + +public class SimpleTimetableDateParams extends SimpleTimetableParams { + + public int startDate; + public int endDate; + + public SimpleTimetableDateParams(int id, int type, int startDate, int endDate) { + super(id, type); + this.startDate = startDate; + this.endDate = endDate; + } +} diff --git a/src/main/java/ley/untis/data/SimpleTimetableParams.java b/src/main/java/ley/untis/data/SimpleTimetableParams.java new file mode 100644 index 0000000..3318d8c --- /dev/null +++ b/src/main/java/ley/untis/data/SimpleTimetableParams.java @@ -0,0 +1,12 @@ +package ley.untis.data; + +public class SimpleTimetableParams { + public int id; + public int type; + + public SimpleTimetableParams(int id, int type) { + this.id = id; + this.type = type; + } + +} diff --git a/src/main/java/ley/untis/data/TimetableResponse.java b/src/main/java/ley/untis/data/TimetableResponse.java new file mode 100644 index 0000000..684e2a8 --- /dev/null +++ b/src/main/java/ley/untis/data/TimetableResponse.java @@ -0,0 +1,37 @@ +package ley.untis.data; + +import java.util.ArrayList; + +public class TimetableResponse extends ArrayList { + + public static class Period { + public int id; + public int date; + public int startTime; + public int endTime; + public String lstype; + public String code; + public String info; + public String substText; + public String lstext; + public int lsnumber; + public String statflags; + public String activityType; + public String sg; + public String bkRemark; + public String bkText; + public Holder[] kl; + public Holder[] te; + public Holder[] su; + public Holder[] ro; + + + public static class Holder { + public int id; + public String name; + public String longname; + public String externalkey; + } + } + +}