@sekolaos/shared-api 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JBIEHGQ6.js → chunk-2YBLKPOL.js} +5 -5
- package/dist/chunk-2YBLKPOL.js.map +1 -0
- package/dist/{chunk-XGKBOKII.cjs → chunk-4I2DP4CT.cjs} +5 -5
- package/dist/chunk-4I2DP4CT.cjs.map +1 -0
- package/dist/index.cjs +31 -31
- package/dist/index.js +1 -1
- package/dist/modules/attendance/index.cjs +31 -31
- package/dist/modules/attendance/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-JBIEHGQ6.js.map +0 -1
- package/dist/chunk-XGKBOKII.cjs.map +0 -1
|
@@ -14,14 +14,14 @@ async function getAttendanceShiftDetail(targetType) {
|
|
|
14
14
|
}
|
|
15
15
|
async function createAttendanceShift(payload) {
|
|
16
16
|
return postData(
|
|
17
|
-
`${TENANT_ENDPOINT}/shifts`,
|
|
17
|
+
`${TENANT_ENDPOINT}/shifts/${payload.targetType}`,
|
|
18
18
|
payload
|
|
19
19
|
);
|
|
20
20
|
}
|
|
21
21
|
async function updateAttendanceShift(targetType, payload) {
|
|
22
22
|
return putData(
|
|
23
|
-
`${TENANT_ENDPOINT}/shifts
|
|
24
|
-
payload
|
|
23
|
+
`${TENANT_ENDPOINT}/shifts`,
|
|
24
|
+
{ [targetType]: payload }
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
async function deleteAttendanceShift(targetType) {
|
|
@@ -209,5 +209,5 @@ function useStudentBatchSyncMutation(options) {
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
export { batchSyncAttendance, createAttendanceShift, createPicketAssignment, deleteAttendanceShift, getAttendanceHistory, getAttendanceShiftDetail, getAttendanceShifts, getDutyStatus, getDynamicQrStream, listPicketSchedules, recordManualStudentAttendance, studentBatchSync, updateAttendanceShift, updateClassAttendance, useAttendanceHistory, useAttendanceShiftDetailQuery, useAttendanceShiftsQuery, useBatchSyncAttendance, useCreateAttendanceShiftMutation, useCreatePicketAssignment, useDeleteAttendanceShiftMutation, useDutyStatusQuery, useDynamicQrStream, useManualStudentAttendanceMutation, usePicketSchedules, useStudentBatchSyncMutation, useUpdateAttendanceShiftMutation, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr };
|
|
212
|
-
//# sourceMappingURL=chunk-
|
|
213
|
-
//# sourceMappingURL=chunk-
|
|
212
|
+
//# sourceMappingURL=chunk-2YBLKPOL.js.map
|
|
213
|
+
//# sourceMappingURL=chunk-2YBLKPOL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":[],"mappings":"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","file":"chunk-2YBLKPOL.js","sourcesContent":["import type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n AttendanceShift,\r\n CreateAttendanceShiftSchemaInput,\r\n UpdateAttendanceShiftSchemaInput,\r\n ManualStudentAttendanceRequest,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { apiClient } from \"../../client/axios-instance\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys, attendanceShiftKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\r\nconst TENANT_ENDPOINT = API_ENDPOINTS.tenants;\r\n\r\n// ── Shift CRUD (tenant endpoint) ───────────────────────────────────────────\r\n\r\nexport async function getAttendanceShifts(params?: {\r\n targetType?: \"SISWA\" | \"GURU\";\r\n}): Promise<AttendanceShift[]> {\r\n return getData<AttendanceShift[]>(`${TENANT_ENDPOINT}/shifts`, { params });\r\n}\r\n\r\nexport async function getAttendanceShiftDetail(\r\n targetType: \"SISWA\" | \"GURU\"\r\n): Promise<AttendanceShift> {\r\n return getData<AttendanceShift>(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\nexport async function createAttendanceShift(\r\n payload: CreateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return postData<AttendanceShift, CreateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts/${payload.targetType}`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateAttendanceShift(\r\n targetType: \"SISWA\" | \"GURU\",\r\n payload: UpdateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return putData<AttendanceShift, Record<string, unknown>>(\r\n `${TENANT_ENDPOINT}/shifts`,\r\n { [targetType]: payload }\r\n );\r\n}\r\n\r\nexport async function deleteAttendanceShift(targetType: \"SISWA\" | \"GURU\"): Promise<void> {\r\n await apiClient.delete(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\n// ── Presensi siswa ───────────────────────────────────────────────────────────\r\n\r\nexport async function getAttendanceHistory(\r\n params: AttendanceHistoryQuery\r\n): Promise<AttendanceHistoryResult> {\r\n return getPaginated<AttendanceHistoryItem>(`${ENDPOINT}/history`, { params });\r\n}\r\n\r\nexport async function batchSyncAttendance(\r\n payload: BatchSyncAttendanceRequest\r\n): Promise<BatchSyncAttendanceResponse> {\r\n return postData<BatchSyncAttendanceResponse, BatchSyncAttendanceRequest>(\r\n `${ENDPOINT}/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateClassAttendance(\r\n payload: UpdateClassAttendanceRequest\r\n): Promise<ClassUpdateAttendanceResult> {\r\n return postData<ClassUpdateAttendanceResult, UpdateClassAttendanceRequest>(\r\n `${ENDPOINT}/class-update`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function getDynamicQrStream(\r\n params?: DynamicQrStreamQuery\r\n): Promise<DynamicQrStreamResult | string> {\r\n if (params?.format === \"text\") {\r\n const response = await apiClient.get<string>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n return response.data;\r\n }\r\n return getData<DynamicQrStreamResult>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n}\r\n\r\nexport async function verifyDynamicQr(\r\n payload: TeacherScanDynamicQrRequest\r\n): Promise<DynamicQrVerifyResult> {\r\n return postData<DynamicQrVerifyResult, TeacherScanDynamicQrRequest>(\r\n `${ENDPOINT}/dynamic-qr/verify`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function listPicketSchedules(\r\n params?: Partial<PicketScheduleListQuery>\r\n): Promise<PicketAssignment[]> {\r\n return getData<PicketAssignment[]>(`${ENDPOINT}/picket-schedules`, { params });\r\n}\r\n\r\nexport async function createPicketAssignment(\r\n payload: CreatePicketAssignmentInput\r\n): Promise<PicketAssignment> {\r\n return postData<PicketAssignment, CreatePicketAssignmentInput>(\r\n `${ENDPOINT}/picket-schedules`,\r\n payload\r\n );\r\n}\r\n\r\n// ── Status piket & absen manual ─────────────────────────────────────────────\r\n\r\nexport interface DutyStatus {\r\n isActiveDutyTeacher: boolean;\r\n activeShift: {\r\n id: string;\r\n name: string;\r\n checkInStart: string;\r\n checkInEnd: string;\r\n checkOutEnd: string;\r\n } | null;\r\n dutyDate: string;\r\n}\r\n\r\nexport async function getDutyStatus(): Promise<DutyStatus> {\r\n return getData<DutyStatus>(`${ENDPOINT}/duty-status`);\r\n}\r\n\r\nexport interface ManualAttendanceResult {\r\n id: string;\r\n method: \"QR_SCAN\" | \"MANUAL_DUTY_TEACHER\" | \"SYSTEM_AUTO\";\r\n status: \"PRESENT\" | \"LATE\";\r\n manualReason: string;\r\n recordedByUserId: string | null;\r\n}\r\n\r\nexport async function recordManualStudentAttendance(\r\n payload: ManualStudentAttendanceRequest\r\n): Promise<ManualAttendanceResult> {\r\n return postData<ManualAttendanceResult, ManualStudentAttendanceRequest>(\r\n `${ENDPOINT}/students/manual`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function studentBatchSync(\r\n payload: StudentBatchSyncRequest\r\n): Promise<StudentBatchSyncResponse> {\r\n return postData<StudentBatchSyncResponse, StudentBatchSyncRequest>(\r\n `${ENDPOINT}/students/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useAttendanceHistory(params: AttendanceHistoryQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.history(params as unknown as Record<string, unknown>),\r\n queryFn: () => getAttendanceHistory(params),\r\n enabled,\r\n });\r\n}\r\n\r\nexport function useDynamicQrStream(params: DynamicQrStreamQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dynamicQrStream(params as unknown as Record<string, unknown>),\r\n queryFn: () => getDynamicQrStream(params),\r\n enabled,\r\n refetchInterval: 15_000,\r\n });\r\n}\r\n\r\nexport function usePicketSchedules(options?: QueryOptionsWithoutKey<PicketAssignment[]>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.picketSchedules(),\r\n queryFn: () => listPicketSchedules(),\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useBatchSyncAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: batchSyncAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateClassAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateClassAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useVerifyDynamicQr() {\r\n return useMutation({ mutationFn: verifyDynamicQr });\r\n}\r\n\r\nexport function useCreatePicketAssignment(options?: MutationOptionsCustom<PicketAssignment, CreatePicketAssignmentInput>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPicketAssignment,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\n// ── Hooks: shift CRUD ───────────────────────────────────────────────────────\r\n\r\nexport function useAttendanceShiftsQuery(params?: { targetType?: \"SISWA\" | \"GURU\" }) {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.list(\r\n params as unknown as Record<string, unknown> | undefined\r\n ),\r\n queryFn: () => getAttendanceShifts(params),\r\n });\r\n}\r\n\r\nexport function useAttendanceShiftDetailQuery(targetType: \"SISWA\" | \"GURU\") {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.detail(targetType),\r\n queryFn: () => getAttendanceShiftDetail(targetType),\r\n });\r\n}\r\n\r\nexport function useCreateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<AttendanceShift, CreateAttendanceShiftSchemaInput>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<\r\n AttendanceShift,\r\n { targetType: \"SISWA\" | \"GURU\"; payload: UpdateAttendanceShiftSchemaInput }\r\n >\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({\r\n targetType,\r\n payload,\r\n }: {\r\n targetType: \"SISWA\" | \"GURU\";\r\n payload: UpdateAttendanceShiftSchemaInput;\r\n }) => updateAttendanceShift(targetType, payload),\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useDeleteAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<void, \"SISWA\" | \"GURU\">\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\n// ── Hooks: status piket & absen manual ─────────────────────────────────────\r\n\r\nexport function useDutyStatusQuery(options?: QueryOptionsWithoutKey<DutyStatus>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dutyStatus(),\r\n queryFn: getDutyStatus,\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useManualStudentAttendanceMutation(\r\n options?: MutationOptionsCustom<ManualAttendanceResult, ManualStudentAttendanceRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: recordManualStudentAttendance,\r\n onSuccess: async (data, vars, ctx) => {\r\n // Invalikan riwayat presensi hari ini\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useStudentBatchSyncMutation(\r\n options?: MutationOptionsCustom<StudentBatchSyncResponse, StudentBatchSyncRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: studentBatchSync,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n AttendanceShift,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreateAttendanceShiftSchemaInput,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n ManualStudentAttendanceRequest,\r\n PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n TeacherScanDynamicQrRequest,\r\n UpdateAttendanceShiftSchemaInput,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}
|
|
@@ -16,14 +16,14 @@ async function getAttendanceShiftDetail(targetType) {
|
|
|
16
16
|
}
|
|
17
17
|
async function createAttendanceShift(payload) {
|
|
18
18
|
return chunkNGFFI4XQ_cjs.postData(
|
|
19
|
-
`${TENANT_ENDPOINT}/shifts`,
|
|
19
|
+
`${TENANT_ENDPOINT}/shifts/${payload.targetType}`,
|
|
20
20
|
payload
|
|
21
21
|
);
|
|
22
22
|
}
|
|
23
23
|
async function updateAttendanceShift(targetType, payload) {
|
|
24
24
|
return chunkNGFFI4XQ_cjs.putData(
|
|
25
|
-
`${TENANT_ENDPOINT}/shifts
|
|
26
|
-
payload
|
|
25
|
+
`${TENANT_ENDPOINT}/shifts`,
|
|
26
|
+
{ [targetType]: payload }
|
|
27
27
|
);
|
|
28
28
|
}
|
|
29
29
|
async function deleteAttendanceShift(targetType) {
|
|
@@ -240,5 +240,5 @@ exports.useUpdateAttendanceShiftMutation = useUpdateAttendanceShiftMutation;
|
|
|
240
240
|
exports.useUpdateClassAttendance = useUpdateClassAttendance;
|
|
241
241
|
exports.useVerifyDynamicQr = useVerifyDynamicQr;
|
|
242
242
|
exports.verifyDynamicQr = verifyDynamicQr;
|
|
243
|
-
//# sourceMappingURL=chunk-
|
|
244
|
-
//# sourceMappingURL=chunk-
|
|
243
|
+
//# sourceMappingURL=chunk-4I2DP4CT.cjs.map
|
|
244
|
+
//# sourceMappingURL=chunk-4I2DP4CT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":["API_ENDPOINTS","getData","postData","putData","apiClient","getPaginated","useQuery","attendanceKeys","useQueryClient","useMutation","attendanceShiftKeys"],"mappings":"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","file":"chunk-4I2DP4CT.cjs","sourcesContent":["import type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n AttendanceShift,\r\n CreateAttendanceShiftSchemaInput,\r\n UpdateAttendanceShiftSchemaInput,\r\n ManualStudentAttendanceRequest,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { apiClient } from \"../../client/axios-instance\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys, attendanceShiftKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\r\nconst TENANT_ENDPOINT = API_ENDPOINTS.tenants;\r\n\r\n// ── Shift CRUD (tenant endpoint) ───────────────────────────────────────────\r\n\r\nexport async function getAttendanceShifts(params?: {\r\n targetType?: \"SISWA\" | \"GURU\";\r\n}): Promise<AttendanceShift[]> {\r\n return getData<AttendanceShift[]>(`${TENANT_ENDPOINT}/shifts`, { params });\r\n}\r\n\r\nexport async function getAttendanceShiftDetail(\r\n targetType: \"SISWA\" | \"GURU\"\r\n): Promise<AttendanceShift> {\r\n return getData<AttendanceShift>(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\nexport async function createAttendanceShift(\r\n payload: CreateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return postData<AttendanceShift, CreateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts/${payload.targetType}`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateAttendanceShift(\r\n targetType: \"SISWA\" | \"GURU\",\r\n payload: UpdateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return putData<AttendanceShift, Record<string, unknown>>(\r\n `${TENANT_ENDPOINT}/shifts`,\r\n { [targetType]: payload }\r\n );\r\n}\r\n\r\nexport async function deleteAttendanceShift(targetType: \"SISWA\" | \"GURU\"): Promise<void> {\r\n await apiClient.delete(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\n// ── Presensi siswa ───────────────────────────────────────────────────────────\r\n\r\nexport async function getAttendanceHistory(\r\n params: AttendanceHistoryQuery\r\n): Promise<AttendanceHistoryResult> {\r\n return getPaginated<AttendanceHistoryItem>(`${ENDPOINT}/history`, { params });\r\n}\r\n\r\nexport async function batchSyncAttendance(\r\n payload: BatchSyncAttendanceRequest\r\n): Promise<BatchSyncAttendanceResponse> {\r\n return postData<BatchSyncAttendanceResponse, BatchSyncAttendanceRequest>(\r\n `${ENDPOINT}/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateClassAttendance(\r\n payload: UpdateClassAttendanceRequest\r\n): Promise<ClassUpdateAttendanceResult> {\r\n return postData<ClassUpdateAttendanceResult, UpdateClassAttendanceRequest>(\r\n `${ENDPOINT}/class-update`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function getDynamicQrStream(\r\n params?: DynamicQrStreamQuery\r\n): Promise<DynamicQrStreamResult | string> {\r\n if (params?.format === \"text\") {\r\n const response = await apiClient.get<string>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n return response.data;\r\n }\r\n return getData<DynamicQrStreamResult>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n}\r\n\r\nexport async function verifyDynamicQr(\r\n payload: TeacherScanDynamicQrRequest\r\n): Promise<DynamicQrVerifyResult> {\r\n return postData<DynamicQrVerifyResult, TeacherScanDynamicQrRequest>(\r\n `${ENDPOINT}/dynamic-qr/verify`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function listPicketSchedules(\r\n params?: Partial<PicketScheduleListQuery>\r\n): Promise<PicketAssignment[]> {\r\n return getData<PicketAssignment[]>(`${ENDPOINT}/picket-schedules`, { params });\r\n}\r\n\r\nexport async function createPicketAssignment(\r\n payload: CreatePicketAssignmentInput\r\n): Promise<PicketAssignment> {\r\n return postData<PicketAssignment, CreatePicketAssignmentInput>(\r\n `${ENDPOINT}/picket-schedules`,\r\n payload\r\n );\r\n}\r\n\r\n// ── Status piket & absen manual ─────────────────────────────────────────────\r\n\r\nexport interface DutyStatus {\r\n isActiveDutyTeacher: boolean;\r\n activeShift: {\r\n id: string;\r\n name: string;\r\n checkInStart: string;\r\n checkInEnd: string;\r\n checkOutEnd: string;\r\n } | null;\r\n dutyDate: string;\r\n}\r\n\r\nexport async function getDutyStatus(): Promise<DutyStatus> {\r\n return getData<DutyStatus>(`${ENDPOINT}/duty-status`);\r\n}\r\n\r\nexport interface ManualAttendanceResult {\r\n id: string;\r\n method: \"QR_SCAN\" | \"MANUAL_DUTY_TEACHER\" | \"SYSTEM_AUTO\";\r\n status: \"PRESENT\" | \"LATE\";\r\n manualReason: string;\r\n recordedByUserId: string | null;\r\n}\r\n\r\nexport async function recordManualStudentAttendance(\r\n payload: ManualStudentAttendanceRequest\r\n): Promise<ManualAttendanceResult> {\r\n return postData<ManualAttendanceResult, ManualStudentAttendanceRequest>(\r\n `${ENDPOINT}/students/manual`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function studentBatchSync(\r\n payload: StudentBatchSyncRequest\r\n): Promise<StudentBatchSyncResponse> {\r\n return postData<StudentBatchSyncResponse, StudentBatchSyncRequest>(\r\n `${ENDPOINT}/students/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useAttendanceHistory(params: AttendanceHistoryQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.history(params as unknown as Record<string, unknown>),\r\n queryFn: () => getAttendanceHistory(params),\r\n enabled,\r\n });\r\n}\r\n\r\nexport function useDynamicQrStream(params: DynamicQrStreamQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dynamicQrStream(params as unknown as Record<string, unknown>),\r\n queryFn: () => getDynamicQrStream(params),\r\n enabled,\r\n refetchInterval: 15_000,\r\n });\r\n}\r\n\r\nexport function usePicketSchedules(options?: QueryOptionsWithoutKey<PicketAssignment[]>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.picketSchedules(),\r\n queryFn: () => listPicketSchedules(),\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useBatchSyncAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: batchSyncAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateClassAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateClassAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useVerifyDynamicQr() {\r\n return useMutation({ mutationFn: verifyDynamicQr });\r\n}\r\n\r\nexport function useCreatePicketAssignment(options?: MutationOptionsCustom<PicketAssignment, CreatePicketAssignmentInput>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPicketAssignment,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\n// ── Hooks: shift CRUD ───────────────────────────────────────────────────────\r\n\r\nexport function useAttendanceShiftsQuery(params?: { targetType?: \"SISWA\" | \"GURU\" }) {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.list(\r\n params as unknown as Record<string, unknown> | undefined\r\n ),\r\n queryFn: () => getAttendanceShifts(params),\r\n });\r\n}\r\n\r\nexport function useAttendanceShiftDetailQuery(targetType: \"SISWA\" | \"GURU\") {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.detail(targetType),\r\n queryFn: () => getAttendanceShiftDetail(targetType),\r\n });\r\n}\r\n\r\nexport function useCreateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<AttendanceShift, CreateAttendanceShiftSchemaInput>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<\r\n AttendanceShift,\r\n { targetType: \"SISWA\" | \"GURU\"; payload: UpdateAttendanceShiftSchemaInput }\r\n >\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({\r\n targetType,\r\n payload,\r\n }: {\r\n targetType: \"SISWA\" | \"GURU\";\r\n payload: UpdateAttendanceShiftSchemaInput;\r\n }) => updateAttendanceShift(targetType, payload),\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useDeleteAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<void, \"SISWA\" | \"GURU\">\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\n// ── Hooks: status piket & absen manual ─────────────────────────────────────\r\n\r\nexport function useDutyStatusQuery(options?: QueryOptionsWithoutKey<DutyStatus>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dutyStatus(),\r\n queryFn: getDutyStatus,\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useManualStudentAttendanceMutation(\r\n options?: MutationOptionsCustom<ManualAttendanceResult, ManualStudentAttendanceRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: recordManualStudentAttendance,\r\n onSuccess: async (data, vars, ctx) => {\r\n // Invalikan riwayat presensi hari ini\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useStudentBatchSyncMutation(\r\n options?: MutationOptionsCustom<StudentBatchSyncResponse, StudentBatchSyncRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: studentBatchSync,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n AttendanceShift,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreateAttendanceShiftSchemaInput,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n ManualStudentAttendanceRequest,\r\n PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n TeacherScanDynamicQrRequest,\r\n UpdateAttendanceShiftSchemaInput,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -13,7 +13,7 @@ var chunkEXEAVSTX_cjs = require('./chunk-EXEAVSTX.cjs');
|
|
|
13
13
|
var chunk2FTS6JMO_cjs = require('./chunk-2FTS6JMO.cjs');
|
|
14
14
|
require('./chunk-WF63F6RJ.cjs');
|
|
15
15
|
var chunkIWV6SOVN_cjs = require('./chunk-IWV6SOVN.cjs');
|
|
16
|
-
var
|
|
16
|
+
var chunk4I2DP4CT_cjs = require('./chunk-4I2DP4CT.cjs');
|
|
17
17
|
var chunkV7QGZZXE_cjs = require('./chunk-V7QGZZXE.cjs');
|
|
18
18
|
var chunkUJN47JNP_cjs = require('./chunk-UJN47JNP.cjs');
|
|
19
19
|
var chunk3TOBH3YY_cjs = require('./chunk-3TOBH3YY.cjs');
|
|
@@ -463,123 +463,123 @@ Object.defineProperty(exports, "useUpdateAcademicYear", {
|
|
|
463
463
|
});
|
|
464
464
|
Object.defineProperty(exports, "batchSyncAttendance", {
|
|
465
465
|
enumerable: true,
|
|
466
|
-
get: function () { return
|
|
466
|
+
get: function () { return chunk4I2DP4CT_cjs.batchSyncAttendance; }
|
|
467
467
|
});
|
|
468
468
|
Object.defineProperty(exports, "createAttendanceShift", {
|
|
469
469
|
enumerable: true,
|
|
470
|
-
get: function () { return
|
|
470
|
+
get: function () { return chunk4I2DP4CT_cjs.createAttendanceShift; }
|
|
471
471
|
});
|
|
472
472
|
Object.defineProperty(exports, "createPicketAssignment", {
|
|
473
473
|
enumerable: true,
|
|
474
|
-
get: function () { return
|
|
474
|
+
get: function () { return chunk4I2DP4CT_cjs.createPicketAssignment; }
|
|
475
475
|
});
|
|
476
476
|
Object.defineProperty(exports, "deleteAttendanceShift", {
|
|
477
477
|
enumerable: true,
|
|
478
|
-
get: function () { return
|
|
478
|
+
get: function () { return chunk4I2DP4CT_cjs.deleteAttendanceShift; }
|
|
479
479
|
});
|
|
480
480
|
Object.defineProperty(exports, "getAttendanceHistory", {
|
|
481
481
|
enumerable: true,
|
|
482
|
-
get: function () { return
|
|
482
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceHistory; }
|
|
483
483
|
});
|
|
484
484
|
Object.defineProperty(exports, "getAttendanceShiftDetail", {
|
|
485
485
|
enumerable: true,
|
|
486
|
-
get: function () { return
|
|
486
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceShiftDetail; }
|
|
487
487
|
});
|
|
488
488
|
Object.defineProperty(exports, "getAttendanceShifts", {
|
|
489
489
|
enumerable: true,
|
|
490
|
-
get: function () { return
|
|
490
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceShifts; }
|
|
491
491
|
});
|
|
492
492
|
Object.defineProperty(exports, "getDutyStatus", {
|
|
493
493
|
enumerable: true,
|
|
494
|
-
get: function () { return
|
|
494
|
+
get: function () { return chunk4I2DP4CT_cjs.getDutyStatus; }
|
|
495
495
|
});
|
|
496
496
|
Object.defineProperty(exports, "getDynamicQrStream", {
|
|
497
497
|
enumerable: true,
|
|
498
|
-
get: function () { return
|
|
498
|
+
get: function () { return chunk4I2DP4CT_cjs.getDynamicQrStream; }
|
|
499
499
|
});
|
|
500
500
|
Object.defineProperty(exports, "listPicketSchedules", {
|
|
501
501
|
enumerable: true,
|
|
502
|
-
get: function () { return
|
|
502
|
+
get: function () { return chunk4I2DP4CT_cjs.listPicketSchedules; }
|
|
503
503
|
});
|
|
504
504
|
Object.defineProperty(exports, "recordManualStudentAttendance", {
|
|
505
505
|
enumerable: true,
|
|
506
|
-
get: function () { return
|
|
506
|
+
get: function () { return chunk4I2DP4CT_cjs.recordManualStudentAttendance; }
|
|
507
507
|
});
|
|
508
508
|
Object.defineProperty(exports, "studentBatchSync", {
|
|
509
509
|
enumerable: true,
|
|
510
|
-
get: function () { return
|
|
510
|
+
get: function () { return chunk4I2DP4CT_cjs.studentBatchSync; }
|
|
511
511
|
});
|
|
512
512
|
Object.defineProperty(exports, "updateAttendanceShift", {
|
|
513
513
|
enumerable: true,
|
|
514
|
-
get: function () { return
|
|
514
|
+
get: function () { return chunk4I2DP4CT_cjs.updateAttendanceShift; }
|
|
515
515
|
});
|
|
516
516
|
Object.defineProperty(exports, "updateClassAttendance", {
|
|
517
517
|
enumerable: true,
|
|
518
|
-
get: function () { return
|
|
518
|
+
get: function () { return chunk4I2DP4CT_cjs.updateClassAttendance; }
|
|
519
519
|
});
|
|
520
520
|
Object.defineProperty(exports, "useAttendanceHistory", {
|
|
521
521
|
enumerable: true,
|
|
522
|
-
get: function () { return
|
|
522
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceHistory; }
|
|
523
523
|
});
|
|
524
524
|
Object.defineProperty(exports, "useAttendanceShiftDetailQuery", {
|
|
525
525
|
enumerable: true,
|
|
526
|
-
get: function () { return
|
|
526
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceShiftDetailQuery; }
|
|
527
527
|
});
|
|
528
528
|
Object.defineProperty(exports, "useAttendanceShiftsQuery", {
|
|
529
529
|
enumerable: true,
|
|
530
|
-
get: function () { return
|
|
530
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceShiftsQuery; }
|
|
531
531
|
});
|
|
532
532
|
Object.defineProperty(exports, "useBatchSyncAttendance", {
|
|
533
533
|
enumerable: true,
|
|
534
|
-
get: function () { return
|
|
534
|
+
get: function () { return chunk4I2DP4CT_cjs.useBatchSyncAttendance; }
|
|
535
535
|
});
|
|
536
536
|
Object.defineProperty(exports, "useCreateAttendanceShiftMutation", {
|
|
537
537
|
enumerable: true,
|
|
538
|
-
get: function () { return
|
|
538
|
+
get: function () { return chunk4I2DP4CT_cjs.useCreateAttendanceShiftMutation; }
|
|
539
539
|
});
|
|
540
540
|
Object.defineProperty(exports, "useCreatePicketAssignment", {
|
|
541
541
|
enumerable: true,
|
|
542
|
-
get: function () { return
|
|
542
|
+
get: function () { return chunk4I2DP4CT_cjs.useCreatePicketAssignment; }
|
|
543
543
|
});
|
|
544
544
|
Object.defineProperty(exports, "useDeleteAttendanceShiftMutation", {
|
|
545
545
|
enumerable: true,
|
|
546
|
-
get: function () { return
|
|
546
|
+
get: function () { return chunk4I2DP4CT_cjs.useDeleteAttendanceShiftMutation; }
|
|
547
547
|
});
|
|
548
548
|
Object.defineProperty(exports, "useDutyStatusQuery", {
|
|
549
549
|
enumerable: true,
|
|
550
|
-
get: function () { return
|
|
550
|
+
get: function () { return chunk4I2DP4CT_cjs.useDutyStatusQuery; }
|
|
551
551
|
});
|
|
552
552
|
Object.defineProperty(exports, "useDynamicQrStream", {
|
|
553
553
|
enumerable: true,
|
|
554
|
-
get: function () { return
|
|
554
|
+
get: function () { return chunk4I2DP4CT_cjs.useDynamicQrStream; }
|
|
555
555
|
});
|
|
556
556
|
Object.defineProperty(exports, "useManualStudentAttendanceMutation", {
|
|
557
557
|
enumerable: true,
|
|
558
|
-
get: function () { return
|
|
558
|
+
get: function () { return chunk4I2DP4CT_cjs.useManualStudentAttendanceMutation; }
|
|
559
559
|
});
|
|
560
560
|
Object.defineProperty(exports, "usePicketSchedules", {
|
|
561
561
|
enumerable: true,
|
|
562
|
-
get: function () { return
|
|
562
|
+
get: function () { return chunk4I2DP4CT_cjs.usePicketSchedules; }
|
|
563
563
|
});
|
|
564
564
|
Object.defineProperty(exports, "useStudentBatchSyncMutation", {
|
|
565
565
|
enumerable: true,
|
|
566
|
-
get: function () { return
|
|
566
|
+
get: function () { return chunk4I2DP4CT_cjs.useStudentBatchSyncMutation; }
|
|
567
567
|
});
|
|
568
568
|
Object.defineProperty(exports, "useUpdateAttendanceShiftMutation", {
|
|
569
569
|
enumerable: true,
|
|
570
|
-
get: function () { return
|
|
570
|
+
get: function () { return chunk4I2DP4CT_cjs.useUpdateAttendanceShiftMutation; }
|
|
571
571
|
});
|
|
572
572
|
Object.defineProperty(exports, "useUpdateClassAttendance", {
|
|
573
573
|
enumerable: true,
|
|
574
|
-
get: function () { return
|
|
574
|
+
get: function () { return chunk4I2DP4CT_cjs.useUpdateClassAttendance; }
|
|
575
575
|
});
|
|
576
576
|
Object.defineProperty(exports, "useVerifyDynamicQr", {
|
|
577
577
|
enumerable: true,
|
|
578
|
-
get: function () { return
|
|
578
|
+
get: function () { return chunk4I2DP4CT_cjs.useVerifyDynamicQr; }
|
|
579
579
|
});
|
|
580
580
|
Object.defineProperty(exports, "verifyDynamicQr", {
|
|
581
581
|
enumerable: true,
|
|
582
|
-
get: function () { return
|
|
582
|
+
get: function () { return chunk4I2DP4CT_cjs.verifyDynamicQr; }
|
|
583
583
|
});
|
|
584
584
|
Object.defineProperty(exports, "changePassword", {
|
|
585
585
|
enumerable: true,
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export { createTenant, getAttendanceShift, getCurrentTenant, getTenantModules, l
|
|
|
11
11
|
export { SekolaosQueryProvider, createDefaultQueryClient } from './chunk-CBTITLRR.js';
|
|
12
12
|
import './chunk-AGPMQFZM.js';
|
|
13
13
|
export { activateAcademicYear, createAcademicYear, listAcademicYears, updateAcademicYear, useAcademicYears, useActivateAcademicYear, useCreateAcademicYear, useUpdateAcademicYear } from './chunk-Q4UVXJMH.js';
|
|
14
|
-
export { batchSyncAttendance, createAttendanceShift, createPicketAssignment, deleteAttendanceShift, getAttendanceHistory, getAttendanceShiftDetail, getAttendanceShifts, getDutyStatus, getDynamicQrStream, listPicketSchedules, recordManualStudentAttendance, studentBatchSync, updateAttendanceShift, updateClassAttendance, useAttendanceHistory, useAttendanceShiftDetailQuery, useAttendanceShiftsQuery, useBatchSyncAttendance, useCreateAttendanceShiftMutation, useCreatePicketAssignment, useDeleteAttendanceShiftMutation, useDutyStatusQuery, useDynamicQrStream, useManualStudentAttendanceMutation, usePicketSchedules, useStudentBatchSyncMutation, useUpdateAttendanceShiftMutation, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr } from './chunk-
|
|
14
|
+
export { batchSyncAttendance, createAttendanceShift, createPicketAssignment, deleteAttendanceShift, getAttendanceHistory, getAttendanceShiftDetail, getAttendanceShifts, getDutyStatus, getDynamicQrStream, listPicketSchedules, recordManualStudentAttendance, studentBatchSync, updateAttendanceShift, updateClassAttendance, useAttendanceHistory, useAttendanceShiftDetailQuery, useAttendanceShiftsQuery, useBatchSyncAttendance, useCreateAttendanceShiftMutation, useCreatePicketAssignment, useDeleteAttendanceShiftMutation, useDutyStatusQuery, useDynamicQrStream, useManualStudentAttendanceMutation, usePicketSchedules, useStudentBatchSyncMutation, useUpdateAttendanceShiftMutation, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr } from './chunk-2YBLKPOL.js';
|
|
15
15
|
export { changePassword, consumeImpersonation, exitImpersonation, getMe, login, logout, selectTenant, switchRole, useChangePassword, useConsumeImpersonation, useExitImpersonation, useLogin, useLogout, useMe, useSelectTenant, useSwitchRole } from './chunk-KPGOAAOU.js';
|
|
16
16
|
export { createClassroom, getClassroom, getClassroomStudents, listClassrooms, promoteClassStudents, updateClassroom, useClassroom, useClassroomStudents, useClassrooms, useCreateClassroom, usePromoteClassStudents, useUpdateClassroom } from './chunk-B2BMTZUU.js';
|
|
17
17
|
export { API_ENDPOINTS, API_V1_PREFIX } from './chunk-Q5ZX6TKB.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk4I2DP4CT_cjs = require('../../chunk-4I2DP4CT.cjs');
|
|
4
4
|
require('../../chunk-3TOBH3YY.cjs');
|
|
5
5
|
require('../../chunk-NGFFI4XQ.cjs');
|
|
6
6
|
require('../../chunk-PPK3HQOY.cjs');
|
|
@@ -11,123 +11,123 @@ require('../../chunk-5KSKHZWB.cjs');
|
|
|
11
11
|
|
|
12
12
|
Object.defineProperty(exports, "batchSyncAttendance", {
|
|
13
13
|
enumerable: true,
|
|
14
|
-
get: function () { return
|
|
14
|
+
get: function () { return chunk4I2DP4CT_cjs.batchSyncAttendance; }
|
|
15
15
|
});
|
|
16
16
|
Object.defineProperty(exports, "createAttendanceShift", {
|
|
17
17
|
enumerable: true,
|
|
18
|
-
get: function () { return
|
|
18
|
+
get: function () { return chunk4I2DP4CT_cjs.createAttendanceShift; }
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "createPicketAssignment", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () { return
|
|
22
|
+
get: function () { return chunk4I2DP4CT_cjs.createPicketAssignment; }
|
|
23
23
|
});
|
|
24
24
|
Object.defineProperty(exports, "deleteAttendanceShift", {
|
|
25
25
|
enumerable: true,
|
|
26
|
-
get: function () { return
|
|
26
|
+
get: function () { return chunk4I2DP4CT_cjs.deleteAttendanceShift; }
|
|
27
27
|
});
|
|
28
28
|
Object.defineProperty(exports, "getAttendanceHistory", {
|
|
29
29
|
enumerable: true,
|
|
30
|
-
get: function () { return
|
|
30
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceHistory; }
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "getAttendanceShiftDetail", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function () { return
|
|
34
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceShiftDetail; }
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "getAttendanceShifts", {
|
|
37
37
|
enumerable: true,
|
|
38
|
-
get: function () { return
|
|
38
|
+
get: function () { return chunk4I2DP4CT_cjs.getAttendanceShifts; }
|
|
39
39
|
});
|
|
40
40
|
Object.defineProperty(exports, "getDutyStatus", {
|
|
41
41
|
enumerable: true,
|
|
42
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunk4I2DP4CT_cjs.getDutyStatus; }
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "getDynamicQrStream", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunk4I2DP4CT_cjs.getDynamicQrStream; }
|
|
47
47
|
});
|
|
48
48
|
Object.defineProperty(exports, "listPicketSchedules", {
|
|
49
49
|
enumerable: true,
|
|
50
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunk4I2DP4CT_cjs.listPicketSchedules; }
|
|
51
51
|
});
|
|
52
52
|
Object.defineProperty(exports, "recordManualStudentAttendance", {
|
|
53
53
|
enumerable: true,
|
|
54
|
-
get: function () { return
|
|
54
|
+
get: function () { return chunk4I2DP4CT_cjs.recordManualStudentAttendance; }
|
|
55
55
|
});
|
|
56
56
|
Object.defineProperty(exports, "studentBatchSync", {
|
|
57
57
|
enumerable: true,
|
|
58
|
-
get: function () { return
|
|
58
|
+
get: function () { return chunk4I2DP4CT_cjs.studentBatchSync; }
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "updateAttendanceShift", {
|
|
61
61
|
enumerable: true,
|
|
62
|
-
get: function () { return
|
|
62
|
+
get: function () { return chunk4I2DP4CT_cjs.updateAttendanceShift; }
|
|
63
63
|
});
|
|
64
64
|
Object.defineProperty(exports, "updateClassAttendance", {
|
|
65
65
|
enumerable: true,
|
|
66
|
-
get: function () { return
|
|
66
|
+
get: function () { return chunk4I2DP4CT_cjs.updateClassAttendance; }
|
|
67
67
|
});
|
|
68
68
|
Object.defineProperty(exports, "useAttendanceHistory", {
|
|
69
69
|
enumerable: true,
|
|
70
|
-
get: function () { return
|
|
70
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceHistory; }
|
|
71
71
|
});
|
|
72
72
|
Object.defineProperty(exports, "useAttendanceShiftDetailQuery", {
|
|
73
73
|
enumerable: true,
|
|
74
|
-
get: function () { return
|
|
74
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceShiftDetailQuery; }
|
|
75
75
|
});
|
|
76
76
|
Object.defineProperty(exports, "useAttendanceShiftsQuery", {
|
|
77
77
|
enumerable: true,
|
|
78
|
-
get: function () { return
|
|
78
|
+
get: function () { return chunk4I2DP4CT_cjs.useAttendanceShiftsQuery; }
|
|
79
79
|
});
|
|
80
80
|
Object.defineProperty(exports, "useBatchSyncAttendance", {
|
|
81
81
|
enumerable: true,
|
|
82
|
-
get: function () { return
|
|
82
|
+
get: function () { return chunk4I2DP4CT_cjs.useBatchSyncAttendance; }
|
|
83
83
|
});
|
|
84
84
|
Object.defineProperty(exports, "useCreateAttendanceShiftMutation", {
|
|
85
85
|
enumerable: true,
|
|
86
|
-
get: function () { return
|
|
86
|
+
get: function () { return chunk4I2DP4CT_cjs.useCreateAttendanceShiftMutation; }
|
|
87
87
|
});
|
|
88
88
|
Object.defineProperty(exports, "useCreatePicketAssignment", {
|
|
89
89
|
enumerable: true,
|
|
90
|
-
get: function () { return
|
|
90
|
+
get: function () { return chunk4I2DP4CT_cjs.useCreatePicketAssignment; }
|
|
91
91
|
});
|
|
92
92
|
Object.defineProperty(exports, "useDeleteAttendanceShiftMutation", {
|
|
93
93
|
enumerable: true,
|
|
94
|
-
get: function () { return
|
|
94
|
+
get: function () { return chunk4I2DP4CT_cjs.useDeleteAttendanceShiftMutation; }
|
|
95
95
|
});
|
|
96
96
|
Object.defineProperty(exports, "useDutyStatusQuery", {
|
|
97
97
|
enumerable: true,
|
|
98
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunk4I2DP4CT_cjs.useDutyStatusQuery; }
|
|
99
99
|
});
|
|
100
100
|
Object.defineProperty(exports, "useDynamicQrStream", {
|
|
101
101
|
enumerable: true,
|
|
102
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunk4I2DP4CT_cjs.useDynamicQrStream; }
|
|
103
103
|
});
|
|
104
104
|
Object.defineProperty(exports, "useManualStudentAttendanceMutation", {
|
|
105
105
|
enumerable: true,
|
|
106
|
-
get: function () { return
|
|
106
|
+
get: function () { return chunk4I2DP4CT_cjs.useManualStudentAttendanceMutation; }
|
|
107
107
|
});
|
|
108
108
|
Object.defineProperty(exports, "usePicketSchedules", {
|
|
109
109
|
enumerable: true,
|
|
110
|
-
get: function () { return
|
|
110
|
+
get: function () { return chunk4I2DP4CT_cjs.usePicketSchedules; }
|
|
111
111
|
});
|
|
112
112
|
Object.defineProperty(exports, "useStudentBatchSyncMutation", {
|
|
113
113
|
enumerable: true,
|
|
114
|
-
get: function () { return
|
|
114
|
+
get: function () { return chunk4I2DP4CT_cjs.useStudentBatchSyncMutation; }
|
|
115
115
|
});
|
|
116
116
|
Object.defineProperty(exports, "useUpdateAttendanceShiftMutation", {
|
|
117
117
|
enumerable: true,
|
|
118
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunk4I2DP4CT_cjs.useUpdateAttendanceShiftMutation; }
|
|
119
119
|
});
|
|
120
120
|
Object.defineProperty(exports, "useUpdateClassAttendance", {
|
|
121
121
|
enumerable: true,
|
|
122
|
-
get: function () { return
|
|
122
|
+
get: function () { return chunk4I2DP4CT_cjs.useUpdateClassAttendance; }
|
|
123
123
|
});
|
|
124
124
|
Object.defineProperty(exports, "useVerifyDynamicQr", {
|
|
125
125
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
126
|
+
get: function () { return chunk4I2DP4CT_cjs.useVerifyDynamicQr; }
|
|
127
127
|
});
|
|
128
128
|
Object.defineProperty(exports, "verifyDynamicQr", {
|
|
129
129
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
130
|
+
get: function () { return chunk4I2DP4CT_cjs.verifyDynamicQr; }
|
|
131
131
|
});
|
|
132
132
|
//# sourceMappingURL=index.cjs.map
|
|
133
133
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { batchSyncAttendance, createAttendanceShift, createPicketAssignment, deleteAttendanceShift, getAttendanceHistory, getAttendanceShiftDetail, getAttendanceShifts, getDutyStatus, getDynamicQrStream, listPicketSchedules, recordManualStudentAttendance, studentBatchSync, updateAttendanceShift, updateClassAttendance, useAttendanceHistory, useAttendanceShiftDetailQuery, useAttendanceShiftsQuery, useBatchSyncAttendance, useCreateAttendanceShiftMutation, useCreatePicketAssignment, useDeleteAttendanceShiftMutation, useDutyStatusQuery, useDynamicQrStream, useManualStudentAttendanceMutation, usePicketSchedules, useStudentBatchSyncMutation, useUpdateAttendanceShiftMutation, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr } from '../../chunk-
|
|
1
|
+
export { batchSyncAttendance, createAttendanceShift, createPicketAssignment, deleteAttendanceShift, getAttendanceHistory, getAttendanceShiftDetail, getAttendanceShifts, getDutyStatus, getDynamicQrStream, listPicketSchedules, recordManualStudentAttendance, studentBatchSync, updateAttendanceShift, updateClassAttendance, useAttendanceHistory, useAttendanceShiftDetailQuery, useAttendanceShiftsQuery, useBatchSyncAttendance, useCreateAttendanceShiftMutation, useCreatePicketAssignment, useDeleteAttendanceShiftMutation, useDutyStatusQuery, useDynamicQrStream, useManualStudentAttendanceMutation, usePicketSchedules, useStudentBatchSyncMutation, useUpdateAttendanceShiftMutation, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr } from '../../chunk-2YBLKPOL.js';
|
|
2
2
|
import '../../chunk-Q5ZX6TKB.js';
|
|
3
3
|
import '../../chunk-6JGO2CUT.js';
|
|
4
4
|
import '../../chunk-GRXFSXG5.js';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":[],"mappings":"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","file":"chunk-JBIEHGQ6.js","sourcesContent":["import type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n AttendanceShift,\r\n CreateAttendanceShiftSchemaInput,\r\n UpdateAttendanceShiftSchemaInput,\r\n ManualStudentAttendanceRequest,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { apiClient } from \"../../client/axios-instance\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys, attendanceShiftKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\r\nconst TENANT_ENDPOINT = API_ENDPOINTS.tenants;\r\n\r\n// ── Shift CRUD (tenant endpoint) ───────────────────────────────────────────\r\n\r\nexport async function getAttendanceShifts(params?: {\r\n targetType?: \"SISWA\" | \"GURU\";\r\n}): Promise<AttendanceShift[]> {\r\n return getData<AttendanceShift[]>(`${TENANT_ENDPOINT}/shifts`, { params });\r\n}\r\n\r\nexport async function getAttendanceShiftDetail(\r\n targetType: \"SISWA\" | \"GURU\"\r\n): Promise<AttendanceShift> {\r\n return getData<AttendanceShift>(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\nexport async function createAttendanceShift(\r\n payload: CreateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return postData<AttendanceShift, CreateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateAttendanceShift(\r\n targetType: \"SISWA\" | \"GURU\",\r\n payload: UpdateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return putData<AttendanceShift, UpdateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts/${targetType}`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function deleteAttendanceShift(targetType: \"SISWA\" | \"GURU\"): Promise<void> {\r\n await apiClient.delete(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\n// ── Presensi siswa ───────────────────────────────────────────────────────────\r\n\r\nexport async function getAttendanceHistory(\r\n params: AttendanceHistoryQuery\r\n): Promise<AttendanceHistoryResult> {\r\n return getPaginated<AttendanceHistoryItem>(`${ENDPOINT}/history`, { params });\r\n}\r\n\r\nexport async function batchSyncAttendance(\r\n payload: BatchSyncAttendanceRequest\r\n): Promise<BatchSyncAttendanceResponse> {\r\n return postData<BatchSyncAttendanceResponse, BatchSyncAttendanceRequest>(\r\n `${ENDPOINT}/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateClassAttendance(\r\n payload: UpdateClassAttendanceRequest\r\n): Promise<ClassUpdateAttendanceResult> {\r\n return postData<ClassUpdateAttendanceResult, UpdateClassAttendanceRequest>(\r\n `${ENDPOINT}/class-update`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function getDynamicQrStream(\r\n params?: DynamicQrStreamQuery\r\n): Promise<DynamicQrStreamResult | string> {\r\n if (params?.format === \"text\") {\r\n const response = await apiClient.get<string>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n return response.data;\r\n }\r\n return getData<DynamicQrStreamResult>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n}\r\n\r\nexport async function verifyDynamicQr(\r\n payload: TeacherScanDynamicQrRequest\r\n): Promise<DynamicQrVerifyResult> {\r\n return postData<DynamicQrVerifyResult, TeacherScanDynamicQrRequest>(\r\n `${ENDPOINT}/dynamic-qr/verify`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function listPicketSchedules(\r\n params?: Partial<PicketScheduleListQuery>\r\n): Promise<PicketAssignment[]> {\r\n return getData<PicketAssignment[]>(`${ENDPOINT}/picket-schedules`, { params });\r\n}\r\n\r\nexport async function createPicketAssignment(\r\n payload: CreatePicketAssignmentInput\r\n): Promise<PicketAssignment> {\r\n return postData<PicketAssignment, CreatePicketAssignmentInput>(\r\n `${ENDPOINT}/picket-schedules`,\r\n payload\r\n );\r\n}\r\n\r\n// ── Status piket & absen manual ─────────────────────────────────────────────\r\n\r\nexport interface DutyStatus {\r\n isActiveDutyTeacher: boolean;\r\n activeShift: {\r\n id: string;\r\n name: string;\r\n checkInStart: string;\r\n checkInEnd: string;\r\n checkOutEnd: string;\r\n } | null;\r\n dutyDate: string;\r\n}\r\n\r\nexport async function getDutyStatus(): Promise<DutyStatus> {\r\n return getData<DutyStatus>(`${ENDPOINT}/duty-status`);\r\n}\r\n\r\nexport interface ManualAttendanceResult {\r\n id: string;\r\n method: \"QR_SCAN\" | \"MANUAL_DUTY_TEACHER\" | \"SYSTEM_AUTO\";\r\n status: \"PRESENT\" | \"LATE\";\r\n manualReason: string;\r\n recordedByUserId: string | null;\r\n}\r\n\r\nexport async function recordManualStudentAttendance(\r\n payload: ManualStudentAttendanceRequest\r\n): Promise<ManualAttendanceResult> {\r\n return postData<ManualAttendanceResult, ManualStudentAttendanceRequest>(\r\n `${ENDPOINT}/students/manual`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function studentBatchSync(\r\n payload: StudentBatchSyncRequest\r\n): Promise<StudentBatchSyncResponse> {\r\n return postData<StudentBatchSyncResponse, StudentBatchSyncRequest>(\r\n `${ENDPOINT}/students/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useAttendanceHistory(params: AttendanceHistoryQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.history(params as unknown as Record<string, unknown>),\r\n queryFn: () => getAttendanceHistory(params),\r\n enabled,\r\n });\r\n}\r\n\r\nexport function useDynamicQrStream(params: DynamicQrStreamQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dynamicQrStream(params as unknown as Record<string, unknown>),\r\n queryFn: () => getDynamicQrStream(params),\r\n enabled,\r\n refetchInterval: 15_000,\r\n });\r\n}\r\n\r\nexport function usePicketSchedules(options?: QueryOptionsWithoutKey<PicketAssignment[]>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.picketSchedules(),\r\n queryFn: () => listPicketSchedules(),\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useBatchSyncAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: batchSyncAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateClassAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateClassAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useVerifyDynamicQr() {\r\n return useMutation({ mutationFn: verifyDynamicQr });\r\n}\r\n\r\nexport function useCreatePicketAssignment(options?: MutationOptionsCustom<PicketAssignment, CreatePicketAssignmentInput>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPicketAssignment,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\n// ── Hooks: shift CRUD ───────────────────────────────────────────────────────\r\n\r\nexport function useAttendanceShiftsQuery(params?: { targetType?: \"SISWA\" | \"GURU\" }) {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.list(\r\n params as unknown as Record<string, unknown> | undefined\r\n ),\r\n queryFn: () => getAttendanceShifts(params),\r\n });\r\n}\r\n\r\nexport function useAttendanceShiftDetailQuery(targetType: \"SISWA\" | \"GURU\") {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.detail(targetType),\r\n queryFn: () => getAttendanceShiftDetail(targetType),\r\n });\r\n}\r\n\r\nexport function useCreateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<AttendanceShift, CreateAttendanceShiftSchemaInput>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<\r\n AttendanceShift,\r\n { targetType: \"SISWA\" | \"GURU\"; payload: UpdateAttendanceShiftSchemaInput }\r\n >\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({\r\n targetType,\r\n payload,\r\n }: {\r\n targetType: \"SISWA\" | \"GURU\";\r\n payload: UpdateAttendanceShiftSchemaInput;\r\n }) => updateAttendanceShift(targetType, payload),\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useDeleteAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<void, \"SISWA\" | \"GURU\">\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\n// ── Hooks: status piket & absen manual ─────────────────────────────────────\r\n\r\nexport function useDutyStatusQuery(options?: QueryOptionsWithoutKey<DutyStatus>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dutyStatus(),\r\n queryFn: getDutyStatus,\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useManualStudentAttendanceMutation(\r\n options?: MutationOptionsCustom<ManualAttendanceResult, ManualStudentAttendanceRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: recordManualStudentAttendance,\r\n onSuccess: async (data, vars, ctx) => {\r\n // Invalikan riwayat presensi hari ini\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useStudentBatchSyncMutation(\r\n options?: MutationOptionsCustom<StudentBatchSyncResponse, StudentBatchSyncRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: studentBatchSync,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n AttendanceShift,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreateAttendanceShiftSchemaInput,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n ManualStudentAttendanceRequest,\r\n PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n TeacherScanDynamicQrRequest,\r\n UpdateAttendanceShiftSchemaInput,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":["API_ENDPOINTS","getData","postData","putData","apiClient","getPaginated","useQuery","attendanceKeys","useQueryClient","useMutation","attendanceShiftKeys"],"mappings":"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","file":"chunk-XGKBOKII.cjs","sourcesContent":["import type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n AttendanceShift,\r\n CreateAttendanceShiftSchemaInput,\r\n UpdateAttendanceShiftSchemaInput,\r\n ManualStudentAttendanceRequest,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { apiClient } from \"../../client/axios-instance\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys, attendanceShiftKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\r\nconst TENANT_ENDPOINT = API_ENDPOINTS.tenants;\r\n\r\n// ── Shift CRUD (tenant endpoint) ───────────────────────────────────────────\r\n\r\nexport async function getAttendanceShifts(params?: {\r\n targetType?: \"SISWA\" | \"GURU\";\r\n}): Promise<AttendanceShift[]> {\r\n return getData<AttendanceShift[]>(`${TENANT_ENDPOINT}/shifts`, { params });\r\n}\r\n\r\nexport async function getAttendanceShiftDetail(\r\n targetType: \"SISWA\" | \"GURU\"\r\n): Promise<AttendanceShift> {\r\n return getData<AttendanceShift>(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\nexport async function createAttendanceShift(\r\n payload: CreateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return postData<AttendanceShift, CreateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateAttendanceShift(\r\n targetType: \"SISWA\" | \"GURU\",\r\n payload: UpdateAttendanceShiftSchemaInput\r\n): Promise<AttendanceShift> {\r\n return putData<AttendanceShift, UpdateAttendanceShiftSchemaInput>(\r\n `${TENANT_ENDPOINT}/shifts/${targetType}`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function deleteAttendanceShift(targetType: \"SISWA\" | \"GURU\"): Promise<void> {\r\n await apiClient.delete(`${TENANT_ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\n// ── Presensi siswa ───────────────────────────────────────────────────────────\r\n\r\nexport async function getAttendanceHistory(\r\n params: AttendanceHistoryQuery\r\n): Promise<AttendanceHistoryResult> {\r\n return getPaginated<AttendanceHistoryItem>(`${ENDPOINT}/history`, { params });\r\n}\r\n\r\nexport async function batchSyncAttendance(\r\n payload: BatchSyncAttendanceRequest\r\n): Promise<BatchSyncAttendanceResponse> {\r\n return postData<BatchSyncAttendanceResponse, BatchSyncAttendanceRequest>(\r\n `${ENDPOINT}/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateClassAttendance(\r\n payload: UpdateClassAttendanceRequest\r\n): Promise<ClassUpdateAttendanceResult> {\r\n return postData<ClassUpdateAttendanceResult, UpdateClassAttendanceRequest>(\r\n `${ENDPOINT}/class-update`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function getDynamicQrStream(\r\n params?: DynamicQrStreamQuery\r\n): Promise<DynamicQrStreamResult | string> {\r\n if (params?.format === \"text\") {\r\n const response = await apiClient.get<string>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n return response.data;\r\n }\r\n return getData<DynamicQrStreamResult>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n}\r\n\r\nexport async function verifyDynamicQr(\r\n payload: TeacherScanDynamicQrRequest\r\n): Promise<DynamicQrVerifyResult> {\r\n return postData<DynamicQrVerifyResult, TeacherScanDynamicQrRequest>(\r\n `${ENDPOINT}/dynamic-qr/verify`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function listPicketSchedules(\r\n params?: Partial<PicketScheduleListQuery>\r\n): Promise<PicketAssignment[]> {\r\n return getData<PicketAssignment[]>(`${ENDPOINT}/picket-schedules`, { params });\r\n}\r\n\r\nexport async function createPicketAssignment(\r\n payload: CreatePicketAssignmentInput\r\n): Promise<PicketAssignment> {\r\n return postData<PicketAssignment, CreatePicketAssignmentInput>(\r\n `${ENDPOINT}/picket-schedules`,\r\n payload\r\n );\r\n}\r\n\r\n// ── Status piket & absen manual ─────────────────────────────────────────────\r\n\r\nexport interface DutyStatus {\r\n isActiveDutyTeacher: boolean;\r\n activeShift: {\r\n id: string;\r\n name: string;\r\n checkInStart: string;\r\n checkInEnd: string;\r\n checkOutEnd: string;\r\n } | null;\r\n dutyDate: string;\r\n}\r\n\r\nexport async function getDutyStatus(): Promise<DutyStatus> {\r\n return getData<DutyStatus>(`${ENDPOINT}/duty-status`);\r\n}\r\n\r\nexport interface ManualAttendanceResult {\r\n id: string;\r\n method: \"QR_SCAN\" | \"MANUAL_DUTY_TEACHER\" | \"SYSTEM_AUTO\";\r\n status: \"PRESENT\" | \"LATE\";\r\n manualReason: string;\r\n recordedByUserId: string | null;\r\n}\r\n\r\nexport async function recordManualStudentAttendance(\r\n payload: ManualStudentAttendanceRequest\r\n): Promise<ManualAttendanceResult> {\r\n return postData<ManualAttendanceResult, ManualStudentAttendanceRequest>(\r\n `${ENDPOINT}/students/manual`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function studentBatchSync(\r\n payload: StudentBatchSyncRequest\r\n): Promise<StudentBatchSyncResponse> {\r\n return postData<StudentBatchSyncResponse, StudentBatchSyncRequest>(\r\n `${ENDPOINT}/students/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useAttendanceHistory(params: AttendanceHistoryQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.history(params as unknown as Record<string, unknown>),\r\n queryFn: () => getAttendanceHistory(params),\r\n enabled,\r\n });\r\n}\r\n\r\nexport function useDynamicQrStream(params: DynamicQrStreamQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dynamicQrStream(params as unknown as Record<string, unknown>),\r\n queryFn: () => getDynamicQrStream(params),\r\n enabled,\r\n refetchInterval: 15_000,\r\n });\r\n}\r\n\r\nexport function usePicketSchedules(options?: QueryOptionsWithoutKey<PicketAssignment[]>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.picketSchedules(),\r\n queryFn: () => listPicketSchedules(),\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useBatchSyncAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: batchSyncAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateClassAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateClassAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useVerifyDynamicQr() {\r\n return useMutation({ mutationFn: verifyDynamicQr });\r\n}\r\n\r\nexport function useCreatePicketAssignment(options?: MutationOptionsCustom<PicketAssignment, CreatePicketAssignmentInput>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPicketAssignment,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\n// ── Hooks: shift CRUD ───────────────────────────────────────────────────────\r\n\r\nexport function useAttendanceShiftsQuery(params?: { targetType?: \"SISWA\" | \"GURU\" }) {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.list(\r\n params as unknown as Record<string, unknown> | undefined\r\n ),\r\n queryFn: () => getAttendanceShifts(params),\r\n });\r\n}\r\n\r\nexport function useAttendanceShiftDetailQuery(targetType: \"SISWA\" | \"GURU\") {\r\n return useQuery({\r\n queryKey: attendanceShiftKeys.detail(targetType),\r\n queryFn: () => getAttendanceShiftDetail(targetType),\r\n });\r\n}\r\n\r\nexport function useCreateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<AttendanceShift, CreateAttendanceShiftSchemaInput>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<\r\n AttendanceShift,\r\n { targetType: \"SISWA\" | \"GURU\"; payload: UpdateAttendanceShiftSchemaInput }\r\n >\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({\r\n targetType,\r\n payload,\r\n }: {\r\n targetType: \"SISWA\" | \"GURU\";\r\n payload: UpdateAttendanceShiftSchemaInput;\r\n }) => updateAttendanceShift(targetType, payload),\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useDeleteAttendanceShiftMutation(\r\n options?: MutationOptionsCustom<void, \"SISWA\" | \"GURU\">\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteAttendanceShift,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceShiftKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\n// ── Hooks: status piket & absen manual ─────────────────────────────────────\r\n\r\nexport function useDutyStatusQuery(options?: QueryOptionsWithoutKey<DutyStatus>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dutyStatus(),\r\n queryFn: getDutyStatus,\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useManualStudentAttendanceMutation(\r\n options?: MutationOptionsCustom<ManualAttendanceResult, ManualStudentAttendanceRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: recordManualStudentAttendance,\r\n onSuccess: async (data, vars, ctx) => {\r\n // Invalikan riwayat presensi hari ini\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport function useStudentBatchSyncMutation(\r\n options?: MutationOptionsCustom<StudentBatchSyncResponse, StudentBatchSyncRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: studentBatchSync,\r\n onSuccess: async (data, vars, ctx) => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n AttendanceShift,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreateAttendanceShiftSchemaInput,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n ManualStudentAttendanceRequest,\r\n PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n StudentBatchSyncRequest,\r\n StudentBatchSyncResponse,\r\n TeacherScanDynamicQrRequest,\r\n UpdateAttendanceShiftSchemaInput,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}
|