Skip to content

Commit 8678b20

Browse files
committed
fix: fixed the attendance not being correctly encoded
1 parent 265075e commit 8678b20

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

src/routes/Attendance.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { RestManager } from "../rest/RESTManager";
33
import { AttendanceItem } from "../structures/AttendanceItem";
44
import { absenceFileStateIncluded, absenceReasonIncluded } from "../types/Attendance";
55
import { BaseDataResponse, BaseResponse } from "../types/RequestHandler";
6-
import { AttendanceItemState, AttendanceItemType } from "../util/Constants";
6+
import { ATTENDANCE_CODE_MAP, ATTENDANCE_STATE_MAP, AttendanceItemState, AttendanceItemType } from "../util/Constants";
77
import { getSingleRelation } from "../util/Relations";
88
import { extractBaseUrl } from "../util/URL";
99

@@ -63,12 +63,12 @@ export const GetAttendanceItems = async (url:string, userId: string, accessToken
6363
const date = parseDate(attendanceData.formattedDate);
6464

6565
attendanceItems.push(new AttendanceItem(
66-
attendanceData.codeKey || "",
66+
(attendanceItems.length + 1).toString(),
6767
date,
68-
new Date(date), // Start date
69-
new Date(date), // End date
70-
attendanceData.codeDescr || AttendanceItemType.ABSENCE,
71-
AttendanceItemState.OPEN,
68+
new Date(date),
69+
new Date(date),
70+
ATTENDANCE_CODE_MAP[attendanceData.codeKey] || AttendanceItemType.ABSENCE,
71+
ATTENDANCE_STATE_MAP[attendanceData.codeKey] || AttendanceItemState.OPEN,
7272
attendanceData.motivation || attendanceData.codeDescr || ""
7373
));
7474
}

src/util/Constants.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,33 @@ export enum AttendanceItemType {
3232
LATENESS = "LATENESS",
3333
ABSENCE = "ABSENCE"
3434
}
35-
3635
export enum AttendanceItemState {
3736
LOCKED = "LOCKED",
3837
OPEN = "OPEN"
3938
}
4039

40+
export const ATTENDANCE_CODE_MAP: Record<string, AttendanceItemType> = {
41+
'215-50': AttendanceItemType.LATENESS, // Retards Justifiées
42+
'215-52': AttendanceItemType.LATENESS, // Retards Non Justifiées
43+
'223': AttendanceItemType.ABSENCE, // Certificat Médical
44+
'219': AttendanceItemType.ABSENCE,
45+
'221': AttendanceItemType.ABSENCE,
46+
'225': AttendanceItemType.ABSENCE,
47+
'315': AttendanceItemType.ABSENCE,
48+
'241': AttendanceItemType.ABSENCE
49+
};
50+
51+
// Add a separate mapping for states
52+
export const ATTENDANCE_STATE_MAP: Record<string, AttendanceItemState> = {
53+
'215-50': AttendanceItemState.LOCKED, // Retards Justifiées
54+
'215-52': AttendanceItemState.OPEN, // Retards Non Justifiées
55+
'223': AttendanceItemState.LOCKED, // Default to locked for medical certificates
56+
'219': AttendanceItemState.OPEN, // Absence injustifiée
57+
'221': AttendanceItemState.LOCKED, // Justificatif des parents
58+
'225': AttendanceItemState.LOCKED, // Justifiée par le directeur
59+
'315': AttendanceItemState.LOCKED, // Autorisée par l'Administration
60+
'241': AttendanceItemState.LOCKED // Exclusion temporaire
61+
};
4162
export enum SkillLevels {
4263
NONE = "NONE",
4364
INSUFFICIENT_MASTERY = "INSUFFICIENT_MASTERY",

0 commit comments

Comments
 (0)