@sekolaos/shared-api 1.3.1 → 1.4.0
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-ZPEEFUEC.cjs → chunk-4LZJ36WZ.cjs} +4 -4
- package/dist/{chunk-ZPEEFUEC.cjs.map → chunk-4LZJ36WZ.cjs.map} +1 -1
- package/dist/{chunk-KB4TZTAC.cjs → chunk-4UJJALG5.cjs} +15 -17
- package/dist/chunk-4UJJALG5.cjs.map +1 -0
- package/dist/{chunk-U7YG2GA7.js → chunk-55WQN2DX.js} +3 -3
- package/dist/{chunk-U7YG2GA7.js.map → chunk-55WQN2DX.js.map} +1 -1
- package/dist/{chunk-XNH67ORL.js → chunk-7GCYXFMU.js} +16 -4
- package/dist/chunk-7GCYXFMU.js.map +1 -0
- package/dist/{chunk-FVPR2MOB.js → chunk-B2BMTZUU.js} +3 -3
- package/dist/{chunk-FVPR2MOB.js.map → chunk-B2BMTZUU.js.map} +1 -1
- package/dist/{chunk-NPR4GLFZ.js → chunk-BKRQIZIV.js} +3 -3
- package/dist/{chunk-NPR4GLFZ.js.map → chunk-BKRQIZIV.js.map} +1 -1
- package/dist/{chunk-PQFTPOP4.js → chunk-CARJ6QAB.js} +3 -3
- package/dist/{chunk-PQFTPOP4.js.map → chunk-CARJ6QAB.js.map} +1 -1
- package/dist/{chunk-Y4YURM53.cjs → chunk-DSGF264Y.cjs} +12 -12
- package/dist/{chunk-Y4YURM53.cjs.map → chunk-DSGF264Y.cjs.map} +1 -1
- package/dist/{chunk-LS4ZQRFS.cjs → chunk-EXEAVSTX.cjs} +11 -11
- package/dist/{chunk-LS4ZQRFS.cjs.map → chunk-EXEAVSTX.cjs.map} +1 -1
- package/dist/{chunk-BBJBCD2K.cjs → chunk-IWV6SOVN.cjs} +6 -6
- package/dist/{chunk-BBJBCD2K.cjs.map → chunk-IWV6SOVN.cjs.map} +1 -1
- package/dist/{chunk-N4OBLYCQ.cjs → chunk-IXMKB5VH.cjs} +6 -6
- package/dist/{chunk-N4OBLYCQ.cjs.map → chunk-IXMKB5VH.cjs.map} +1 -1
- package/dist/chunk-JBIEHGQ6.js +213 -0
- package/dist/chunk-JBIEHGQ6.js.map +1 -0
- package/dist/{chunk-H5WMOGLJ.js → chunk-KPGOAAOU.js} +3 -3
- package/dist/{chunk-H5WMOGLJ.js.map → chunk-KPGOAAOU.js.map} +1 -1
- package/dist/{chunk-23XAR4OH.cjs → chunk-N6Y2VQWI.cjs} +9 -9
- package/dist/{chunk-23XAR4OH.cjs.map → chunk-N6Y2VQWI.cjs.map} +1 -1
- package/dist/chunk-NGEJP5ON.cjs +39 -0
- package/dist/chunk-NGEJP5ON.cjs.map +1 -0
- package/dist/{chunk-HISL2IF2.cjs → chunk-NUKJPRPS.cjs} +17 -3
- package/dist/chunk-NUKJPRPS.cjs.map +1 -0
- package/dist/{chunk-SBBVQ3Z2.cjs → chunk-PDJ6OU3X.cjs} +5 -5
- package/dist/{chunk-SBBVQ3Z2.cjs.map → chunk-PDJ6OU3X.cjs.map} +1 -1
- package/dist/{chunk-ROK2DEVT.js → chunk-Q4UVXJMH.js} +3 -3
- package/dist/{chunk-ROK2DEVT.js.map → chunk-Q4UVXJMH.js.map} +1 -1
- package/dist/{chunk-DATSHIPR.js → chunk-R2S5EWDS.js} +3 -3
- package/dist/{chunk-DATSHIPR.js.map → chunk-R2S5EWDS.js.map} +1 -1
- package/dist/{chunk-RDW4IZWK.js → chunk-RGA4HK7T.js} +3 -3
- package/dist/{chunk-RDW4IZWK.js.map → chunk-RGA4HK7T.js.map} +1 -1
- package/dist/{chunk-CSEMYBBZ.js → chunk-TSMUTMIE.js} +9 -11
- package/dist/chunk-TSMUTMIE.js.map +1 -0
- package/dist/{chunk-AMKVNGY4.cjs → chunk-UJN47JNP.cjs} +11 -11
- package/dist/{chunk-AMKVNGY4.cjs.map → chunk-UJN47JNP.cjs.map} +1 -1
- package/dist/{chunk-NVU4IIMA.cjs → chunk-V7QGZZXE.cjs} +8 -8
- package/dist/{chunk-NVU4IIMA.cjs.map → chunk-V7QGZZXE.cjs.map} +1 -1
- package/dist/{chunk-NCENQB6W.js → chunk-WFDOYOBG.js} +3 -3
- package/dist/{chunk-NCENQB6W.js.map → chunk-WFDOYOBG.js.map} +1 -1
- package/dist/chunk-XGKBOKII.cjs +244 -0
- package/dist/chunk-XGKBOKII.cjs.map +1 -0
- package/dist/chunk-YJOKPUPT.js +34 -0
- package/dist/chunk-YJOKPUPT.js.map +1 -0
- package/dist/index.cjs +254 -165
- package/dist/index.d.cts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +14 -13
- package/dist/keys/index.cjs +21 -13
- package/dist/keys/index.d.cts +14 -1
- package/dist/keys/index.d.ts +14 -1
- package/dist/keys/index.js +1 -1
- package/dist/modules/academic/index.cjs +10 -10
- package/dist/modules/academic/index.js +2 -2
- package/dist/modules/attendance/index.cjs +80 -16
- package/dist/modules/attendance/index.d.cts +138 -4
- package/dist/modules/attendance/index.d.ts +138 -4
- package/dist/modules/attendance/index.js +2 -2
- package/dist/modules/auth/index.cjs +18 -18
- package/dist/modules/auth/index.d.cts +3 -21
- package/dist/modules/auth/index.d.ts +3 -21
- package/dist/modules/auth/index.js +2 -2
- package/dist/modules/classroom/index.cjs +14 -14
- package/dist/modules/classroom/index.js +2 -2
- package/dist/modules/lead/index.cjs +10 -10
- package/dist/modules/lead/index.js +2 -2
- package/dist/modules/roles/index.cjs +29 -0
- package/dist/modules/roles/index.cjs.map +1 -0
- package/dist/modules/roles/index.d.cts +39 -0
- package/dist/modules/roles/index.d.ts +39 -0
- package/dist/modules/roles/index.js +8 -0
- package/dist/modules/roles/index.js.map +1 -0
- package/dist/modules/student/index.cjs +18 -18
- package/dist/modules/student/index.js +2 -2
- package/dist/modules/subject/index.cjs +8 -8
- package/dist/modules/subject/index.js +2 -2
- package/dist/modules/system/index.cjs +4 -4
- package/dist/modules/system/index.js +2 -2
- package/dist/modules/teaching-schedule/index.cjs +14 -14
- package/dist/modules/teaching-schedule/index.js +2 -2
- package/dist/modules/tenant/index.cjs +16 -16
- package/dist/modules/tenant/index.js +2 -2
- package/dist/modules/user/index.cjs +14 -14
- package/dist/modules/user/index.d.cts +10 -20
- package/dist/modules/user/index.d.ts +10 -20
- package/dist/modules/user/index.js +2 -2
- package/package.json +143 -137
- package/dist/chunk-CSEMYBBZ.js.map +0 -1
- package/dist/chunk-HISL2IF2.cjs.map +0 -1
- package/dist/chunk-ID3UGFZZ.js +0 -102
- package/dist/chunk-ID3UGFZZ.js.map +0 -1
- package/dist/chunk-JVX37TC5.cjs +0 -117
- package/dist/chunk-JVX37TC5.cjs.map +0 -1
- package/dist/chunk-KB4TZTAC.cjs.map +0 -1
- package/dist/chunk-XNH67ORL.js.map +0 -1
package/dist/chunk-JVX37TC5.cjs
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunk3TOBH3YY_cjs = require('./chunk-3TOBH3YY.cjs');
|
|
4
|
-
var chunkNGFFI4XQ_cjs = require('./chunk-NGFFI4XQ.cjs');
|
|
5
|
-
var chunkPPK3HQOY_cjs = require('./chunk-PPK3HQOY.cjs');
|
|
6
|
-
var chunkHISL2IF2_cjs = require('./chunk-HISL2IF2.cjs');
|
|
7
|
-
var reactQuery = require('@tanstack/react-query');
|
|
8
|
-
|
|
9
|
-
var ENDPOINT = chunk3TOBH3YY_cjs.API_ENDPOINTS.attendance;
|
|
10
|
-
async function getAttendanceHistory(params) {
|
|
11
|
-
return chunkNGFFI4XQ_cjs.getPaginated(`${ENDPOINT}/history`, { params });
|
|
12
|
-
}
|
|
13
|
-
async function batchSyncAttendance(payload) {
|
|
14
|
-
return chunkNGFFI4XQ_cjs.postData(
|
|
15
|
-
`${ENDPOINT}/batch-sync`,
|
|
16
|
-
payload
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
async function updateClassAttendance(payload) {
|
|
20
|
-
return chunkNGFFI4XQ_cjs.postData(
|
|
21
|
-
`${ENDPOINT}/class-update`,
|
|
22
|
-
payload
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
async function getDynamicQrStream(params) {
|
|
26
|
-
if (params?.format === "text") {
|
|
27
|
-
const response = await chunkPPK3HQOY_cjs.apiClient.get(`${ENDPOINT}/dynamic-qr/stream`, { params });
|
|
28
|
-
return response.data;
|
|
29
|
-
}
|
|
30
|
-
return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/dynamic-qr/stream`, { params });
|
|
31
|
-
}
|
|
32
|
-
async function verifyDynamicQr(payload) {
|
|
33
|
-
return chunkNGFFI4XQ_cjs.postData(
|
|
34
|
-
`${ENDPOINT}/dynamic-qr/verify`,
|
|
35
|
-
payload
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
async function listPicketSchedules(params) {
|
|
39
|
-
return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/picket-schedules`, { params });
|
|
40
|
-
}
|
|
41
|
-
async function createPicketAssignment(payload) {
|
|
42
|
-
return chunkNGFFI4XQ_cjs.postData(
|
|
43
|
-
`${ENDPOINT}/picket-schedules`,
|
|
44
|
-
payload
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
function useAttendanceHistory(params, enabled = true) {
|
|
48
|
-
return reactQuery.useQuery({
|
|
49
|
-
queryKey: chunkHISL2IF2_cjs.attendanceKeys.history(params),
|
|
50
|
-
queryFn: () => getAttendanceHistory(params),
|
|
51
|
-
enabled
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
function useDynamicQrStream(params, enabled = true) {
|
|
55
|
-
return reactQuery.useQuery({
|
|
56
|
-
queryKey: chunkHISL2IF2_cjs.attendanceKeys.dynamicQrStream(params),
|
|
57
|
-
queryFn: () => getDynamicQrStream(params),
|
|
58
|
-
enabled,
|
|
59
|
-
refetchInterval: 15e3
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
function usePicketSchedules(options) {
|
|
63
|
-
return reactQuery.useQuery({
|
|
64
|
-
queryKey: chunkHISL2IF2_cjs.attendanceKeys.picketSchedules(),
|
|
65
|
-
queryFn: () => listPicketSchedules(),
|
|
66
|
-
...options
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
function useBatchSyncAttendance() {
|
|
70
|
-
const queryClient = reactQuery.useQueryClient();
|
|
71
|
-
return reactQuery.useMutation({
|
|
72
|
-
mutationFn: batchSyncAttendance,
|
|
73
|
-
onSuccess: async () => {
|
|
74
|
-
await queryClient.invalidateQueries({ queryKey: chunkHISL2IF2_cjs.attendanceKeys.all });
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function useUpdateClassAttendance() {
|
|
79
|
-
const queryClient = reactQuery.useQueryClient();
|
|
80
|
-
return reactQuery.useMutation({
|
|
81
|
-
mutationFn: updateClassAttendance,
|
|
82
|
-
onSuccess: async () => {
|
|
83
|
-
await queryClient.invalidateQueries({ queryKey: chunkHISL2IF2_cjs.attendanceKeys.all });
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function useVerifyDynamicQr() {
|
|
88
|
-
return reactQuery.useMutation({ mutationFn: verifyDynamicQr });
|
|
89
|
-
}
|
|
90
|
-
function useCreatePicketAssignment(options) {
|
|
91
|
-
const queryClient = reactQuery.useQueryClient();
|
|
92
|
-
return reactQuery.useMutation({
|
|
93
|
-
mutationFn: createPicketAssignment,
|
|
94
|
-
onSuccess: (data, vars, ctx) => {
|
|
95
|
-
queryClient.invalidateQueries({ queryKey: chunkHISL2IF2_cjs.attendanceKeys.all });
|
|
96
|
-
options?.onSuccess?.(data, vars, ctx);
|
|
97
|
-
},
|
|
98
|
-
...options
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
exports.batchSyncAttendance = batchSyncAttendance;
|
|
103
|
-
exports.createPicketAssignment = createPicketAssignment;
|
|
104
|
-
exports.getAttendanceHistory = getAttendanceHistory;
|
|
105
|
-
exports.getDynamicQrStream = getDynamicQrStream;
|
|
106
|
-
exports.listPicketSchedules = listPicketSchedules;
|
|
107
|
-
exports.updateClassAttendance = updateClassAttendance;
|
|
108
|
-
exports.useAttendanceHistory = useAttendanceHistory;
|
|
109
|
-
exports.useBatchSyncAttendance = useBatchSyncAttendance;
|
|
110
|
-
exports.useCreatePicketAssignment = useCreatePicketAssignment;
|
|
111
|
-
exports.useDynamicQrStream = useDynamicQrStream;
|
|
112
|
-
exports.usePicketSchedules = usePicketSchedules;
|
|
113
|
-
exports.useUpdateClassAttendance = useUpdateClassAttendance;
|
|
114
|
-
exports.useVerifyDynamicQr = useVerifyDynamicQr;
|
|
115
|
-
exports.verifyDynamicQr = verifyDynamicQr;
|
|
116
|
-
//# sourceMappingURL=chunk-JVX37TC5.cjs.map
|
|
117
|
-
//# sourceMappingURL=chunk-JVX37TC5.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":["API_ENDPOINTS","getPaginated","postData","apiClient","getData","useQuery","attendanceKeys","useQueryClient","useMutation"],"mappings":"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","file":"chunk-JVX37TC5.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} 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 } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\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\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\nexport 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 PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/user/user.api.ts"],"names":["API_ENDPOINTS","getData","getPaginated","postData","putData","useQuery","userKeys","useQueryClient","useMutation"],"mappings":"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","file":"chunk-KB4TZTAC.cjs","sourcesContent":["import type {\r\n AssignUserRolesRequest,\r\n CreateTeacherInput,\r\n Role,\r\n TeacherListQuery,\r\n UpdateTeacherInput,\r\n User,\r\n UserProfile,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport { userKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.users;\r\n\r\nexport async function listRoles(): Promise<Role[]> {\r\n return getData<Role[]>(`${ENDPOINT}/roles`);\r\n}\r\n\r\nexport async function listTeachers(params?: Partial<TeacherListQuery>): Promise<User[]> {\r\n const result = await getPaginated<User>(`${ENDPOINT}/teachers`, { params });\r\n return result.items;\r\n}\r\n\r\nexport async function getTeacher(id: string): Promise<UserProfile> {\r\n return getData<UserProfile>(`${ENDPOINT}/teachers/${id}`);\r\n}\r\n\r\nexport async function createTeacher(payload: CreateTeacherInput): Promise<UserProfile> {\r\n return postData<UserProfile, CreateTeacherInput>(`${ENDPOINT}/teachers`, payload);\r\n}\r\n\r\nexport async function updateTeacher(\r\n id: string,\r\n payload: UpdateTeacherInput\r\n): Promise<UserProfile> {\r\n return putData<UserProfile, UpdateTeacherInput>(`${ENDPOINT}/teachers/${id}`, payload);\r\n}\r\n\r\nexport async function assignUserRoles(payload: AssignUserRolesRequest): Promise<UserProfile> {\r\n return postData<UserProfile, AssignUserRolesRequest>(\r\n `${ENDPOINT}/teachers/assign-roles`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useRoles() {\r\n return useQuery({ queryKey: userKeys.roles(), queryFn: listRoles, staleTime: 5 * 60_000 });\r\n}\r\n\r\nexport function useTeachers(params?: Partial<TeacherListQuery>) {\r\n return useQuery({\r\n queryKey: userKeys.teachers(params as Record<string, unknown> | undefined),\r\n queryFn: () => listTeachers(params),\r\n });\r\n}\r\n\r\nexport function useTeacher(id: string, options?: { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: userKeys.teacherDetail(id),\r\n queryFn: () => getTeacher(id),\r\n enabled: options?.enabled ?? Boolean(id),\r\n });\r\n}\r\n\r\nexport function useCreateTeacher() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createTeacher,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: userKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateTeacher() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({ id, payload }: { id: string; payload: UpdateTeacherInput }) =>\r\n updateTeacher(id, payload),\r\n onSuccess: async (_data, variables) => {\r\n await queryClient.invalidateQueries({ queryKey: userKeys.teacherDetail(variables.id) });\r\n await queryClient.invalidateQueries({ queryKey: userKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useAssignUserRoles() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: assignUserRoles,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries();\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AssignUserRolesRequest,\r\n CreateTeacherInput,\r\n Role,\r\n TeacherListQuery,\r\n UpdateTeacherInput,\r\n User,\r\n UserProfile,\r\n};\r\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/keys/index.ts"],"names":[],"mappings":"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","file":"chunk-XNH67ORL.js","sourcesContent":["type Params = Record<string, unknown> | undefined;\r\n\r\nexport const authKeys = {\r\n all: [\"auth\"] as const,\r\n me: () => [...authKeys.all, \"me\"] as const,\r\n selectTenant: () => [...authKeys.all, \"select-tenant\"] as const,\r\n};\r\n\r\nexport const tenantKeys = {\r\n all: [\"tenants\"] as const,\r\n current: () => [...tenantKeys.all, \"current\"] as const,\r\n modules: () => [...tenantKeys.all, \"modules\"] as const,\r\n shifts: (params?: Params) => [...tenantKeys.all, \"shifts\", params ?? {}] as const,\r\n shiftDetail: (targetType: \"SISWA\" | \"GURU\") => [...tenantKeys.all, \"shifts\", targetType] as const,\r\n};\r\n\r\nexport const academicYearKeys = {\r\n all: [\"academic-years\"] as const,\r\n list: (params?: Params) => [...academicYearKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...academicYearKeys.all, \"detail\", id] as const,\r\n};\r\n\r\nexport const subjectKeys = {\r\n all: [\"subjects\"] as const,\r\n list: (params?: Params) => [...subjectKeys.all, \"list\", params ?? {}] as const,\r\n};\r\n\r\nexport const classroomKeys = {\r\n all: [\"classrooms\"] as const,\r\n list: (params?: Params) => [...classroomKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...classroomKeys.all, \"detail\", id] as const,\r\n students: (id: string) => [...classroomKeys.detail(id), \"students\"] as const,\r\n};\r\n\r\nexport const studentKeys = {\r\n all: [\"students\"] as const,\r\n list: (params?: Params) => [...studentKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...studentKeys.all, \"detail\", id] as const,\r\n kioskCache: () => [...studentKeys.all, \"kiosk-cache\"] as const,\r\n qrCode: (id: string) => [...studentKeys.detail(id), \"qr-code\"] as const,\r\n};\r\n\r\nexport const scheduleKeys = {\r\n all: [\"teaching-schedules\"] as const,\r\n list: (params?: Params) => [...scheduleKeys.all, \"list\", params ?? {}] as const,\r\n conflicts: (params: Record<string, unknown>) => [...scheduleKeys.all, \"conflicts\", params] as const,\r\n};\r\n\r\nexport const attendanceKeys = {\r\n all: [\"attendance\"] as const,\r\n history: (params: Record<string, unknown>) => [...attendanceKeys.all, \"history\", params] as const,\r\n dynamicQrStream: (params?: Record<string, unknown>) =>\r\n [...attendanceKeys.all, \"dynamic-qr\", params ?? {}] as const,\r\n picketSchedules: (params?: Params) => [...attendanceKeys.all, \"picket-schedules\", params ?? {}] as const,\r\n};\r\n\r\nexport const userKeys = {\r\n all: [\"users\"] as const,\r\n roles: () => [...userKeys.all, \"roles\"] as const,\r\n teachers: (params?: Params) => [...userKeys.all, \"teachers\", \"list\", params ?? {}] as const,\r\n teacherDetail: (id: string) => [...userKeys.all, \"teachers\", \"detail\", id] as const,\r\n};\r\n\r\nexport const leadKeys = {\r\n all: [\"leads\"] as const,\r\n list: (params?: Params) => [...leadKeys.all, \"list\", params ?? {}] as const,\r\n};\r\n\r\nexport const uploadKeys = {\r\n all: [\"uploads\"] as const,\r\n};\r\n\r\nexport const systemKeys = {\r\n all: [\"system\"] as const,\r\n health: () => [...systemKeys.all, \"health\"] as const,\r\n};\r\n\r\nexport * from \"./platform-admin.keys\";\r\n"]}
|