@sekolaos/shared-api 1.1.0 → 1.2.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-4ECXVAIQ.cjs → chunk-2IFQLECT.cjs} +6 -6
- package/dist/{chunk-4ECXVAIQ.cjs.map → chunk-2IFQLECT.cjs.map} +1 -1
- package/dist/{chunk-TSLEYQKD.cjs → chunk-6TPAWAST.cjs} +11 -11
- package/dist/{chunk-TSLEYQKD.cjs.map → chunk-6TPAWAST.cjs.map} +1 -1
- package/dist/{chunk-DNNK2DMM.cjs → chunk-7XRQ255H.cjs} +19 -16
- package/dist/chunk-7XRQ255H.cjs.map +1 -0
- package/dist/{chunk-S6QFHKCE.js → chunk-A5QDNC7Y.js} +13 -10
- package/dist/chunk-A5QDNC7Y.js.map +1 -0
- package/dist/{chunk-XU5UEIBL.js → chunk-ANLONSKR.js} +3 -3
- package/dist/{chunk-XU5UEIBL.js.map → chunk-ANLONSKR.js.map} +1 -1
- package/dist/chunk-BQDHQTPK.js +89 -0
- package/dist/chunk-BQDHQTPK.js.map +1 -0
- package/dist/{chunk-OKSRSOYJ.cjs → chunk-DBKYIIPQ.cjs} +11 -10
- package/dist/chunk-DBKYIIPQ.cjs.map +1 -0
- package/dist/{chunk-R7ACSDOA.cjs → chunk-DUULXOBJ.cjs} +17 -14
- package/dist/chunk-DUULXOBJ.cjs.map +1 -0
- package/dist/{chunk-NBVPN4KL.cjs → chunk-DYBHD45V.cjs} +4 -4
- package/dist/{chunk-NBVPN4KL.cjs.map → chunk-DYBHD45V.cjs.map} +1 -1
- package/dist/{chunk-CP46K2UB.cjs → chunk-HTGZJQNS.cjs} +45 -17
- package/dist/chunk-HTGZJQNS.cjs.map +1 -0
- package/dist/{chunk-AGNLUQKT.cjs → chunk-JZP57ZKZ.cjs} +5 -5
- package/dist/{chunk-AGNLUQKT.cjs.map → chunk-JZP57ZKZ.cjs.map} +1 -1
- package/dist/{chunk-6UCHRWSL.js → chunk-LMSX35HO.js} +3 -3
- package/dist/{chunk-6UCHRWSL.js.map → chunk-LMSX35HO.js.map} +1 -1
- package/dist/{chunk-GKKJMRCL.js → chunk-LNGJA2UL.js} +6 -5
- package/dist/chunk-LNGJA2UL.js.map +1 -0
- package/dist/{chunk-XVG5Z6B5.cjs → chunk-N7CHJ3EM.cjs} +4 -3
- package/dist/{chunk-XVG5Z6B5.cjs.map → chunk-N7CHJ3EM.cjs.map} +1 -1
- package/dist/{chunk-ALMSFTRM.js → chunk-PDMQWMZM.js} +4 -3
- package/dist/{chunk-ALMSFTRM.js.map → chunk-PDMQWMZM.js.map} +1 -1
- package/dist/{chunk-GUJVCKEN.js → chunk-S7N3GQOE.js} +12 -9
- package/dist/chunk-S7N3GQOE.js.map +1 -0
- package/dist/{chunk-R37QQTQS.cjs → chunk-SSPEC3OA.cjs} +6 -6
- package/dist/{chunk-R37QQTQS.cjs.map → chunk-SSPEC3OA.cjs.map} +1 -1
- package/dist/{chunk-3RS57C3E.cjs → chunk-T2TWWLVZ.cjs} +31 -23
- package/dist/chunk-T2TWWLVZ.cjs.map +1 -0
- package/dist/{chunk-YK7QFPBF.js → chunk-T6NCBXWC.js} +3 -3
- package/dist/{chunk-YK7QFPBF.js.map → chunk-T6NCBXWC.js.map} +1 -1
- package/dist/{chunk-LA7MRXWR.js → chunk-WMH2DW3N.js} +3 -3
- package/dist/{chunk-LA7MRXWR.js.map → chunk-WMH2DW3N.js.map} +1 -1
- package/dist/{chunk-AOBHBJ2G.cjs → chunk-WPMDE5ZF.cjs} +16 -13
- package/dist/chunk-WPMDE5ZF.cjs.map +1 -0
- package/dist/{chunk-DMEWJ56D.js → chunk-XOFGB2GD.js} +10 -7
- package/dist/chunk-XOFGB2GD.js.map +1 -0
- package/dist/{chunk-YA2KONBB.js → chunk-ZDBSD2VY.js} +3 -3
- package/dist/{chunk-YA2KONBB.js.map → chunk-ZDBSD2VY.js.map} +1 -1
- package/dist/{chunk-GRBBLS5Y.js → chunk-ZPJ5WHAK.js} +29 -21
- package/dist/chunk-ZPJ5WHAK.js.map +1 -0
- package/dist/index.cjs +146 -138
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +12 -12
- package/dist/keys/index.cjs +13 -13
- package/dist/keys/index.d.cts +1 -0
- package/dist/keys/index.d.ts +1 -0
- 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 +16 -16
- package/dist/modules/attendance/index.d.cts +6 -5
- package/dist/modules/attendance/index.d.ts +6 -5
- package/dist/modules/attendance/index.js +2 -2
- package/dist/modules/auth/index.cjs +20 -12
- package/dist/modules/auth/index.d.cts +112 -15
- package/dist/modules/auth/index.d.ts +112 -15
- package/dist/modules/auth/index.js +2 -2
- package/dist/modules/classroom/index.cjs +14 -14
- package/dist/modules/classroom/index.d.cts +3 -1
- package/dist/modules/classroom/index.d.ts +3 -1
- 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/student/index.cjs +18 -18
- package/dist/modules/student/index.d.cts +4 -2
- package/dist/modules/student/index.d.ts +4 -2
- 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.d.cts +12 -7
- package/dist/modules/teaching-schedule/index.d.ts +12 -7
- 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.js +2 -2
- package/package.json +137 -138
- package/dist/chunk-3RS57C3E.cjs.map +0 -1
- package/dist/chunk-4T52ABA5.js +0 -63
- package/dist/chunk-4T52ABA5.js.map +0 -1
- package/dist/chunk-AOBHBJ2G.cjs.map +0 -1
- package/dist/chunk-CP46K2UB.cjs.map +0 -1
- package/dist/chunk-DMEWJ56D.js.map +0 -1
- package/dist/chunk-DNNK2DMM.cjs.map +0 -1
- package/dist/chunk-GKKJMRCL.js.map +0 -1
- package/dist/chunk-GRBBLS5Y.js.map +0 -1
- package/dist/chunk-GUJVCKEN.js.map +0 -1
- package/dist/chunk-OKSRSOYJ.cjs.map +0 -1
- package/dist/chunk-R7ACSDOA.cjs.map +0 -1
- package/dist/chunk-S6QFHKCE.js.map +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkQJSOSQ7M_cjs = require('./chunk-QJSOSQ7M.cjs');
|
|
4
4
|
var chunkNGFFI4XQ_cjs = require('./chunk-NGFFI4XQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkN7CHJ3EM_cjs = require('./chunk-N7CHJ3EM.cjs');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
|
|
8
8
|
var ENDPOINT = chunkQJSOSQ7M_cjs.API_ENDPOINTS.subjects;
|
|
@@ -17,7 +17,7 @@ async function updateSubject(id, payload) {
|
|
|
17
17
|
}
|
|
18
18
|
function useSubjects(params) {
|
|
19
19
|
return reactQuery.useQuery({
|
|
20
|
-
queryKey:
|
|
20
|
+
queryKey: chunkN7CHJ3EM_cjs.subjectKeys.list(params),
|
|
21
21
|
queryFn: () => listSubjects(params)
|
|
22
22
|
});
|
|
23
23
|
}
|
|
@@ -26,7 +26,7 @@ function useCreateSubject() {
|
|
|
26
26
|
return reactQuery.useMutation({
|
|
27
27
|
mutationFn: createSubject,
|
|
28
28
|
onSuccess: async () => {
|
|
29
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
29
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.subjectKeys.all });
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
}
|
|
@@ -35,7 +35,7 @@ function useUpdateSubject() {
|
|
|
35
35
|
return reactQuery.useMutation({
|
|
36
36
|
mutationFn: ({ id, payload }) => updateSubject(id, payload),
|
|
37
37
|
onSuccess: async () => {
|
|
38
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
38
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.subjectKeys.all });
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
}
|
|
@@ -46,5 +46,5 @@ exports.updateSubject = updateSubject;
|
|
|
46
46
|
exports.useCreateSubject = useCreateSubject;
|
|
47
47
|
exports.useSubjects = useSubjects;
|
|
48
48
|
exports.useUpdateSubject = useUpdateSubject;
|
|
49
|
-
//# sourceMappingURL=chunk-
|
|
50
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-2IFQLECT.cjs.map
|
|
50
|
+
//# sourceMappingURL=chunk-2IFQLECT.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/subject/subject.api.ts"],"names":["API_ENDPOINTS","getData","postData","putData","useQuery","subjectKeys","useQueryClient","useMutation"],"mappings":";;;;;;;AAWA,IAAM,WAAWA,+BAAA,CAAc,QAAA;AAE/B,eAAsB,aAAa,MAAA,EAAwD;AACzF,EAAA,OAAOC,yBAAA,CAAmB,QAAA,EAAU,EAAE,MAAA,EAAQ,CAAA;AAChD;AAEA,eAAsB,cAAc,OAAA,EAA+C;AACjF,EAAA,OAAOC,0BAAA,CAAsC,UAAU,OAAO,CAAA;AAChE;AAEA,eAAsB,aAAA,CAAc,IAAY,OAAA,EAA+C;AAC7F,EAAA,OAAOC,0BAAqC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,IAAI,OAAO,CAAA;AAC1E;AAEO,SAAS,YAAY,MAAA,EAAoC;AAC9D,EAAA,OAAOC,mBAAA,CAAS;AAAA,IACd,QAAA,EAAUC,6BAAA,CAAY,IAAA,CAAK,MAA6C,CAAA;AAAA,IACxE,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM;AAAA,GACnC,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAcC,yBAAA,EAAe;AACnC,EAAA,OAAOC,sBAAA,CAAY;AAAA,IACjB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAUF,6BAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAcC,yBAAA,EAAe;AACnC,EAAA,OAAOC,sBAAA,CAAY;AAAA,IACjB,UAAA,EAAY,CAAC,EAAE,EAAA,EAAI,SAAQ,KACzB,aAAA,CAAc,IAAI,OAAO,CAAA;AAAA,IAC3B,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAUF,6BAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/modules/subject/subject.api.ts"],"names":["API_ENDPOINTS","getData","postData","putData","useQuery","subjectKeys","useQueryClient","useMutation"],"mappings":";;;;;;;AAWA,IAAM,WAAWA,+BAAA,CAAc,QAAA;AAE/B,eAAsB,aAAa,MAAA,EAAwD;AACzF,EAAA,OAAOC,yBAAA,CAAmB,QAAA,EAAU,EAAE,MAAA,EAAQ,CAAA;AAChD;AAEA,eAAsB,cAAc,OAAA,EAA+C;AACjF,EAAA,OAAOC,0BAAA,CAAsC,UAAU,OAAO,CAAA;AAChE;AAEA,eAAsB,aAAA,CAAc,IAAY,OAAA,EAA+C;AAC7F,EAAA,OAAOC,0BAAqC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,IAAI,OAAO,CAAA;AAC1E;AAEO,SAAS,YAAY,MAAA,EAAoC;AAC9D,EAAA,OAAOC,mBAAA,CAAS;AAAA,IACd,QAAA,EAAUC,6BAAA,CAAY,IAAA,CAAK,MAA6C,CAAA;AAAA,IACxE,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM;AAAA,GACnC,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAcC,yBAAA,EAAe;AACnC,EAAA,OAAOC,sBAAA,CAAY;AAAA,IACjB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAUF,6BAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAcC,yBAAA,EAAe;AACnC,EAAA,OAAOC,sBAAA,CAAY;AAAA,IACjB,UAAA,EAAY,CAAC,EAAE,EAAA,EAAI,SAAQ,KACzB,aAAA,CAAc,IAAI,OAAO,CAAA;AAAA,IAC3B,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAUF,6BAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH","file":"chunk-2IFQLECT.cjs","sourcesContent":["import type {\r\n CreateSubjectInput,\r\n Subject,\r\n SubjectListQuery,\r\n UpdateSubjectInput,\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, postData, putData } from \"../../client/http\";\r\nimport { subjectKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.subjects;\r\n\r\nexport async function listSubjects(params?: Partial<SubjectListQuery>): Promise<Subject[]> {\r\n return getData<Subject[]>(ENDPOINT, { params });\r\n}\r\n\r\nexport async function createSubject(payload: CreateSubjectInput): Promise<Subject> {\r\n return postData<Subject, CreateSubjectInput>(ENDPOINT, payload);\r\n}\r\n\r\nexport async function updateSubject(id: string, payload: UpdateSubjectInput): Promise<Subject> {\r\n return putData<Subject, UpdateSubjectInput>(`${ENDPOINT}/${id}`, payload);\r\n}\r\n\r\nexport function useSubjects(params?: Partial<SubjectListQuery>) {\r\n return useQuery({\r\n queryKey: subjectKeys.list(params as Record<string, unknown> | undefined),\r\n queryFn: () => listSubjects(params),\r\n });\r\n}\r\n\r\nexport function useCreateSubject() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createSubject,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: subjectKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateSubject() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({ id, payload }: { id: string; payload: UpdateSubjectInput }) =>\r\n updateSubject(id, payload),\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: subjectKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport type { CreateSubjectInput, Subject, SubjectListQuery, UpdateSubjectInput };\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkQJSOSQ7M_cjs = require('./chunk-QJSOSQ7M.cjs');
|
|
4
4
|
var chunkNGFFI4XQ_cjs = require('./chunk-NGFFI4XQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkN7CHJ3EM_cjs = require('./chunk-N7CHJ3EM.cjs');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
|
|
8
8
|
var ENDPOINT = chunkQJSOSQ7M_cjs.API_ENDPOINTS.tenants;
|
|
@@ -28,20 +28,20 @@ async function createTenant(payload) {
|
|
|
28
28
|
return chunkNGFFI4XQ_cjs.postData(ENDPOINT, payload);
|
|
29
29
|
}
|
|
30
30
|
function useCurrentTenant() {
|
|
31
|
-
return reactQuery.useQuery({ queryKey:
|
|
31
|
+
return reactQuery.useQuery({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.current(), queryFn: getCurrentTenant });
|
|
32
32
|
}
|
|
33
33
|
function useTenantModules() {
|
|
34
|
-
return reactQuery.useQuery({ queryKey:
|
|
34
|
+
return reactQuery.useQuery({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.modules(), queryFn: getTenantModules });
|
|
35
35
|
}
|
|
36
36
|
function useAttendanceShifts(params) {
|
|
37
37
|
return reactQuery.useQuery({
|
|
38
|
-
queryKey:
|
|
38
|
+
queryKey: chunkN7CHJ3EM_cjs.tenantKeys.shifts(params),
|
|
39
39
|
queryFn: () => listAttendanceShifts(params)
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
function useAttendanceShift(targetType) {
|
|
43
43
|
return reactQuery.useQuery({
|
|
44
|
-
queryKey:
|
|
44
|
+
queryKey: chunkN7CHJ3EM_cjs.tenantKeys.shiftDetail(targetType),
|
|
45
45
|
queryFn: () => getAttendanceShift(targetType)
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -50,8 +50,8 @@ function useUpdateCurrentTenant() {
|
|
|
50
50
|
return reactQuery.useMutation({
|
|
51
51
|
mutationFn: updateCurrentTenant,
|
|
52
52
|
onSuccess: async (tenant) => {
|
|
53
|
-
queryClient.setQueryData(
|
|
54
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
53
|
+
queryClient.setQueryData(chunkN7CHJ3EM_cjs.tenantKeys.current(), tenant);
|
|
54
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.all });
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
}
|
|
@@ -60,7 +60,7 @@ function useUpsertAttendanceShifts() {
|
|
|
60
60
|
return reactQuery.useMutation({
|
|
61
61
|
mutationFn: upsertAttendanceShifts,
|
|
62
62
|
onSuccess: async () => {
|
|
63
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
63
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.shifts() });
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
}
|
|
@@ -69,7 +69,7 @@ function useCreateTenant() {
|
|
|
69
69
|
return reactQuery.useMutation({
|
|
70
70
|
mutationFn: createTenant,
|
|
71
71
|
onSuccess: async () => {
|
|
72
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
72
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.all });
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
}
|
|
@@ -88,5 +88,5 @@ exports.useCurrentTenant = useCurrentTenant;
|
|
|
88
88
|
exports.useTenantModules = useTenantModules;
|
|
89
89
|
exports.useUpdateCurrentTenant = useUpdateCurrentTenant;
|
|
90
90
|
exports.useUpsertAttendanceShifts = useUpsertAttendanceShifts;
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
91
|
+
//# sourceMappingURL=chunk-6TPAWAST.cjs.map
|
|
92
|
+
//# sourceMappingURL=chunk-6TPAWAST.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/tenant/tenant.api.ts"],"names":["API_ENDPOINTS","getData","putData","postData","useQuery","tenantKeys","useQueryClient","useMutation"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/modules/tenant/tenant.api.ts"],"names":["API_ENDPOINTS","getData","putData","postData","useQuery","tenantKeys","useQueryClient","useMutation"],"mappings":"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","file":"chunk-6TPAWAST.cjs","sourcesContent":["import type {\r\n AttendanceShift,\r\n CreateTenantInput,\r\n PortalModuleItem,\r\n ShiftTargetType,\r\n Tenant,\r\n UpdateTenantProfileInput,\r\n UpsertAttendanceShiftInput,\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, postData, putData } from \"../../client/http\";\r\nimport { tenantKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.tenants;\r\n\r\nexport async function getCurrentTenant(): Promise<Tenant> {\r\n return getData<Tenant>(`${ENDPOINT}/current`);\r\n}\r\n\r\nexport async function getTenantModules(): Promise<PortalModuleItem[]> {\r\n return getData<PortalModuleItem[]>(`${ENDPOINT}/current/modules`);\r\n}\r\n\r\nexport async function updateCurrentTenant(payload: UpdateTenantProfileInput): Promise<Tenant> {\r\n return putData<Tenant, UpdateTenantProfileInput>(`${ENDPOINT}/current`, payload);\r\n}\r\n\r\nexport async function listAttendanceShifts(params?: {\r\n targetType?: ShiftTargetType;\r\n}): Promise<AttendanceShift[]> {\r\n return getData<AttendanceShift[]>(`${ENDPOINT}/shifts`, { params });\r\n}\r\n\r\nexport async function getAttendanceShift(targetType: ShiftTargetType): Promise<AttendanceShift> {\r\n return getData<AttendanceShift>(`${ENDPOINT}/shifts/${targetType}`);\r\n}\r\n\r\nexport interface UpsertAttendanceShiftsPayload {\r\n SISWA?: UpsertAttendanceShiftInput;\r\n GURU?: UpsertAttendanceShiftInput;\r\n}\r\n\r\nexport async function upsertAttendanceShifts(\r\n payload: UpsertAttendanceShiftsPayload\r\n): Promise<AttendanceShift[]> {\r\n return putData<AttendanceShift[], UpsertAttendanceShiftsPayload>(`${ENDPOINT}/shifts`, payload);\r\n}\r\n\r\nexport async function createTenant(payload: CreateTenantInput): Promise<Tenant> {\r\n return postData<Tenant, CreateTenantInput>(ENDPOINT, payload);\r\n}\r\n\r\nexport function useCurrentTenant() {\r\n return useQuery({ queryKey: tenantKeys.current(), queryFn: getCurrentTenant });\r\n}\r\n\r\nexport function useTenantModules() {\r\n return useQuery({ queryKey: tenantKeys.modules(), queryFn: getTenantModules });\r\n}\r\n\r\nexport function useAttendanceShifts(params?: { targetType?: ShiftTargetType }) {\r\n return useQuery({\r\n queryKey: tenantKeys.shifts(params),\r\n queryFn: () => listAttendanceShifts(params),\r\n });\r\n}\r\n\r\nexport function useAttendanceShift(targetType: ShiftTargetType) {\r\n return useQuery({\r\n queryKey: tenantKeys.shiftDetail(targetType),\r\n queryFn: () => getAttendanceShift(targetType),\r\n });\r\n}\r\n\r\nexport function useUpdateCurrentTenant() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateCurrentTenant,\r\n onSuccess: async (tenant) => {\r\n queryClient.setQueryData(tenantKeys.current(), tenant);\r\n await queryClient.invalidateQueries({ queryKey: tenantKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpsertAttendanceShifts() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: upsertAttendanceShifts,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: tenantKeys.shifts() });\r\n },\r\n });\r\n}\r\n\r\nexport function useCreateTenant() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createTenant,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: tenantKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceShift,\r\n CreateTenantInput,\r\n PortalModuleItem,\r\n ShiftTargetType,\r\n Tenant,\r\n UpdateTenantProfileInput,\r\n UpsertAttendanceShiftInput,\r\n};\r\n"]}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkQJSOSQ7M_cjs = require('./chunk-QJSOSQ7M.cjs');
|
|
4
4
|
var chunkNGFFI4XQ_cjs = require('./chunk-NGFFI4XQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkN7CHJ3EM_cjs = require('./chunk-N7CHJ3EM.cjs');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
|
|
8
8
|
var ENDPOINT = chunkQJSOSQ7M_cjs.API_ENDPOINTS.students;
|
|
9
9
|
async function listStudents(params) {
|
|
10
|
-
|
|
10
|
+
const result = await chunkNGFFI4XQ_cjs.getPaginated(ENDPOINT, { params });
|
|
11
|
+
return result.items;
|
|
11
12
|
}
|
|
12
13
|
async function getStudent(id) {
|
|
13
14
|
return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/${id}`);
|
|
@@ -35,20 +36,20 @@ async function bulkImportStudents(payload) {
|
|
|
35
36
|
}
|
|
36
37
|
function useStudents(params) {
|
|
37
38
|
return reactQuery.useQuery({
|
|
38
|
-
queryKey:
|
|
39
|
+
queryKey: chunkN7CHJ3EM_cjs.studentKeys.list(params),
|
|
39
40
|
queryFn: () => listStudents(params)
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
function useStudent(id, options) {
|
|
43
44
|
return reactQuery.useQuery({
|
|
44
|
-
queryKey:
|
|
45
|
+
queryKey: chunkN7CHJ3EM_cjs.studentKeys.detail(id),
|
|
45
46
|
queryFn: () => getStudent(id),
|
|
46
47
|
enabled: options?.enabled ?? Boolean(id)
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
50
|
function useStudentKioskCache(options) {
|
|
50
51
|
return reactQuery.useQuery({
|
|
51
|
-
queryKey:
|
|
52
|
+
queryKey: chunkN7CHJ3EM_cjs.studentKeys.kioskCache(),
|
|
52
53
|
queryFn: getStudentKioskCache,
|
|
53
54
|
enabled: options?.enabled ?? true,
|
|
54
55
|
staleTime: 5 * 6e4
|
|
@@ -56,7 +57,7 @@ function useStudentKioskCache(options) {
|
|
|
56
57
|
}
|
|
57
58
|
function useStudentQrCode(id, options) {
|
|
58
59
|
return reactQuery.useQuery({
|
|
59
|
-
queryKey:
|
|
60
|
+
queryKey: chunkN7CHJ3EM_cjs.studentKeys.qrCode(id),
|
|
60
61
|
queryFn: () => getStudentQrPayload(id),
|
|
61
62
|
enabled: options?.enabled ?? Boolean(id)
|
|
62
63
|
});
|
|
@@ -66,7 +67,7 @@ function useCreateStudent() {
|
|
|
66
67
|
return reactQuery.useMutation({
|
|
67
68
|
mutationFn: createStudent,
|
|
68
69
|
onSuccess: async () => {
|
|
69
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
70
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.studentKeys.all });
|
|
70
71
|
}
|
|
71
72
|
});
|
|
72
73
|
}
|
|
@@ -75,8 +76,8 @@ function useUpdateStudent() {
|
|
|
75
76
|
return reactQuery.useMutation({
|
|
76
77
|
mutationFn: ({ id, payload }) => updateStudent(id, payload),
|
|
77
78
|
onSuccess: async (_data, variables) => {
|
|
78
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
79
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
79
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.studentKeys.detail(variables.id) });
|
|
80
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.studentKeys.all });
|
|
80
81
|
}
|
|
81
82
|
});
|
|
82
83
|
}
|
|
@@ -85,17 +86,19 @@ function useDeleteStudent() {
|
|
|
85
86
|
return reactQuery.useMutation({
|
|
86
87
|
mutationFn: deleteStudent,
|
|
87
88
|
onSuccess: async () => {
|
|
88
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
89
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.studentKeys.all });
|
|
89
90
|
}
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
|
-
function useBulkImportStudents() {
|
|
93
|
+
function useBulkImportStudents(options) {
|
|
93
94
|
const queryClient = reactQuery.useQueryClient();
|
|
94
95
|
return reactQuery.useMutation({
|
|
95
96
|
mutationFn: bulkImportStudents,
|
|
96
|
-
onSuccess:
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
onSuccess: (data, vars, ctx) => {
|
|
98
|
+
queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.studentKeys.all });
|
|
99
|
+
options?.onSuccess?.(data, vars, ctx);
|
|
100
|
+
},
|
|
101
|
+
...options
|
|
99
102
|
});
|
|
100
103
|
}
|
|
101
104
|
|
|
@@ -115,5 +118,5 @@ exports.useStudentKioskCache = useStudentKioskCache;
|
|
|
115
118
|
exports.useStudentQrCode = useStudentQrCode;
|
|
116
119
|
exports.useStudents = useStudents;
|
|
117
120
|
exports.useUpdateStudent = useUpdateStudent;
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
121
|
+
//# sourceMappingURL=chunk-7XRQ255H.cjs.map
|
|
122
|
+
//# sourceMappingURL=chunk-7XRQ255H.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/student/student.api.ts"],"names":["API_ENDPOINTS","getPaginated","getData","postData","putData","deleteData","useQuery","studentKeys","useQueryClient","useMutation"],"mappings":"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","file":"chunk-7XRQ255H.cjs","sourcesContent":["import type {\r\n BulkImportStudentRequest,\r\n BulkImportStudentResponse,\r\n CreateStudentInput,\r\n Student,\r\n StudentListQuery,\r\n StudentOfflineCache,\r\n StudentQrPayload,\r\n UpdateStudentInput,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { deleteData, getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom } from \"../../client/types\";\r\nimport { studentKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.students;\r\n\r\nexport async function listStudents(params?: Partial<StudentListQuery>): Promise<Student[]> {\r\n const result = await getPaginated<Student>(ENDPOINT, { params });\r\n return result.items;\r\n}\r\n\r\nexport async function getStudent(id: string): Promise<Student> {\r\n return getData<Student>(`${ENDPOINT}/${id}`);\r\n}\r\n\r\nexport async function createStudent(payload: CreateStudentInput): Promise<Student> {\r\n return postData<Student, CreateStudentInput>(ENDPOINT, payload);\r\n}\r\n\r\nexport async function updateStudent(id: string, payload: UpdateStudentInput): Promise<Student> {\r\n return putData<Student, UpdateStudentInput>(`${ENDPOINT}/${id}`, payload);\r\n}\r\n\r\nexport async function deleteStudent(id: string): Promise<void> {\r\n await deleteData<void>(`${ENDPOINT}/${id}`);\r\n}\r\n\r\n/** Cache siswa ringkas untuk mode offline kiosk absensi. */\r\nexport async function getStudentKioskCache(): Promise<StudentOfflineCache[]> {\r\n return getData<StudentOfflineCache[]>(`${ENDPOINT}/kiosk-cache`);\r\n}\r\n\r\nexport async function getStudentQrPayload(id: string): Promise<StudentQrPayload> {\r\n return getData<StudentQrPayload>(`${ENDPOINT}/${id}/qr-code`);\r\n}\r\n\r\nexport async function bulkImportStudents(\r\n payload: BulkImportStudentRequest\r\n): Promise<BulkImportStudentResponse> {\r\n return postData<BulkImportStudentResponse, BulkImportStudentRequest>(\r\n `${ENDPOINT}/bulk-import`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useStudents(params?: Partial<StudentListQuery>) {\r\n return useQuery({\r\n queryKey: studentKeys.list(params as Record<string, unknown> | undefined),\r\n queryFn: () => listStudents(params),\r\n });\r\n}\r\n\r\nexport function useStudent(id: string, options?: { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: studentKeys.detail(id),\r\n queryFn: () => getStudent(id),\r\n enabled: options?.enabled ?? Boolean(id),\r\n });\r\n}\r\n\r\nexport function useStudentKioskCache(options?: { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: studentKeys.kioskCache(),\r\n queryFn: getStudentKioskCache,\r\n enabled: options?.enabled ?? true,\r\n staleTime: 5 * 60_000,\r\n });\r\n}\r\n\r\nexport function useStudentQrCode(id: string, options?: { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: studentKeys.qrCode(id),\r\n queryFn: () => getStudentQrPayload(id),\r\n enabled: options?.enabled ?? Boolean(id),\r\n });\r\n}\r\n\r\nexport function useCreateStudent() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createStudent,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: studentKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateStudent() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({ id, payload }: { id: string; payload: UpdateStudentInput }) =>\r\n updateStudent(id, payload),\r\n onSuccess: async (_data, variables) => {\r\n await queryClient.invalidateQueries({ queryKey: studentKeys.detail(variables.id) });\r\n await queryClient.invalidateQueries({ queryKey: studentKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useDeleteStudent() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: deleteStudent,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: studentKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useBulkImportStudents(\r\n options?: MutationOptionsCustom<BulkImportStudentResponse, BulkImportStudentRequest>\r\n) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: bulkImportStudents,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: studentKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport type {\r\n BulkImportStudentRequest,\r\n BulkImportStudentResponse,\r\n CreateStudentInput,\r\n Student,\r\n StudentListQuery,\r\n StudentOfflineCache,\r\n StudentQrPayload,\r\n UpdateStudentInput,\r\n};\r\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { API_ENDPOINTS } from './chunk-MRFGUSN2.js';
|
|
2
2
|
import { getPaginated, postData, getData } from './chunk-6JGO2CUT.js';
|
|
3
3
|
import { apiClient } from './chunk-GRXFSXG5.js';
|
|
4
|
-
import { attendanceKeys } from './chunk-
|
|
4
|
+
import { attendanceKeys } from './chunk-PDMQWMZM.js';
|
|
5
5
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
6
6
|
|
|
7
7
|
var ENDPOINT = API_ENDPOINTS.attendance;
|
|
@@ -57,10 +57,11 @@ function useDynamicQrStream(params, enabled = true) {
|
|
|
57
57
|
refetchInterval: 15e3
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
|
-
function usePicketSchedules(
|
|
60
|
+
function usePicketSchedules(options) {
|
|
61
61
|
return useQuery({
|
|
62
|
-
queryKey: attendanceKeys.picketSchedules(
|
|
63
|
-
queryFn: () => listPicketSchedules(
|
|
62
|
+
queryKey: attendanceKeys.picketSchedules(),
|
|
63
|
+
queryFn: () => listPicketSchedules(),
|
|
64
|
+
...options
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
function useBatchSyncAttendance() {
|
|
@@ -84,16 +85,18 @@ function useUpdateClassAttendance() {
|
|
|
84
85
|
function useVerifyDynamicQr() {
|
|
85
86
|
return useMutation({ mutationFn: verifyDynamicQr });
|
|
86
87
|
}
|
|
87
|
-
function useCreatePicketAssignment() {
|
|
88
|
+
function useCreatePicketAssignment(options) {
|
|
88
89
|
const queryClient = useQueryClient();
|
|
89
90
|
return useMutation({
|
|
90
91
|
mutationFn: createPicketAssignment,
|
|
91
|
-
onSuccess:
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
onSuccess: (data, vars, ctx) => {
|
|
93
|
+
queryClient.invalidateQueries({ queryKey: attendanceKeys.all });
|
|
94
|
+
options?.onSuccess?.(data, vars, ctx);
|
|
95
|
+
},
|
|
96
|
+
...options
|
|
94
97
|
});
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
export { batchSyncAttendance, createPicketAssignment, getAttendanceHistory, getDynamicQrStream, listPicketSchedules, updateClassAttendance, useAttendanceHistory, useBatchSyncAttendance, useCreatePicketAssignment, useDynamicQrStream, usePicketSchedules, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr };
|
|
98
|
-
//# sourceMappingURL=chunk-
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
101
|
+
//# sourceMappingURL=chunk-A5QDNC7Y.js.map
|
|
102
|
+
//# sourceMappingURL=chunk-A5QDNC7Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":[],"mappings":"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","file":"chunk-A5QDNC7Y.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} 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,6 +1,6 @@
|
|
|
1
1
|
import { API_ENDPOINTS } from './chunk-MRFGUSN2.js';
|
|
2
2
|
import { getData, postData, putData } from './chunk-6JGO2CUT.js';
|
|
3
|
-
import { subjectKeys } from './chunk-
|
|
3
|
+
import { subjectKeys } from './chunk-PDMQWMZM.js';
|
|
4
4
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
5
5
|
|
|
6
6
|
var ENDPOINT = API_ENDPOINTS.subjects;
|
|
@@ -39,5 +39,5 @@ function useUpdateSubject() {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export { createSubject, listSubjects, updateSubject, useCreateSubject, useSubjects, useUpdateSubject };
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-ANLONSKR.js.map
|
|
43
|
+
//# sourceMappingURL=chunk-ANLONSKR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/modules/subject/subject.api.ts"],"names":[],"mappings":";;;;;AAWA,IAAM,WAAW,aAAA,CAAc,QAAA;AAE/B,eAAsB,aAAa,MAAA,EAAwD;AACzF,EAAA,OAAO,OAAA,CAAmB,QAAA,EAAU,EAAE,MAAA,EAAQ,CAAA;AAChD;AAEA,eAAsB,cAAc,OAAA,EAA+C;AACjF,EAAA,OAAO,QAAA,CAAsC,UAAU,OAAO,CAAA;AAChE;AAEA,eAAsB,aAAA,CAAc,IAAY,OAAA,EAA+C;AAC7F,EAAA,OAAO,QAAqC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,IAAI,OAAO,CAAA;AAC1E;AAEO,SAAS,YAAY,MAAA,EAAoC;AAC9D,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU,WAAA,CAAY,IAAA,CAAK,MAA6C,CAAA;AAAA,IACxE,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM;AAAA,GACnC,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,WAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,CAAC,EAAE,EAAA,EAAI,SAAQ,KACzB,aAAA,CAAc,IAAI,OAAO,CAAA;AAAA,IAC3B,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,WAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/modules/subject/subject.api.ts"],"names":[],"mappings":";;;;;AAWA,IAAM,WAAW,aAAA,CAAc,QAAA;AAE/B,eAAsB,aAAa,MAAA,EAAwD;AACzF,EAAA,OAAO,OAAA,CAAmB,QAAA,EAAU,EAAE,MAAA,EAAQ,CAAA;AAChD;AAEA,eAAsB,cAAc,OAAA,EAA+C;AACjF,EAAA,OAAO,QAAA,CAAsC,UAAU,OAAO,CAAA;AAChE;AAEA,eAAsB,aAAA,CAAc,IAAY,OAAA,EAA+C;AAC7F,EAAA,OAAO,QAAqC,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,IAAI,OAAO,CAAA;AAC1E;AAEO,SAAS,YAAY,MAAA,EAAoC;AAC9D,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU,WAAA,CAAY,IAAA,CAAK,MAA6C,CAAA;AAAA,IACxE,OAAA,EAAS,MAAM,YAAA,CAAa,MAAM;AAAA,GACnC,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,aAAA;AAAA,IACZ,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,WAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH;AAEO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,CAAC,EAAE,EAAA,EAAI,SAAQ,KACzB,aAAA,CAAc,IAAI,OAAO,CAAA;AAAA,IAC3B,WAAW,YAAY;AACrB,MAAA,MAAM,YAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,WAAA,CAAY,KAAK,CAAA;AAAA,IACnE;AAAA,GACD,CAAA;AACH","file":"chunk-ANLONSKR.js","sourcesContent":["import type {\r\n CreateSubjectInput,\r\n Subject,\r\n SubjectListQuery,\r\n UpdateSubjectInput,\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, postData, putData } from \"../../client/http\";\r\nimport { subjectKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.subjects;\r\n\r\nexport async function listSubjects(params?: Partial<SubjectListQuery>): Promise<Subject[]> {\r\n return getData<Subject[]>(ENDPOINT, { params });\r\n}\r\n\r\nexport async function createSubject(payload: CreateSubjectInput): Promise<Subject> {\r\n return postData<Subject, CreateSubjectInput>(ENDPOINT, payload);\r\n}\r\n\r\nexport async function updateSubject(id: string, payload: UpdateSubjectInput): Promise<Subject> {\r\n return putData<Subject, UpdateSubjectInput>(`${ENDPOINT}/${id}`, payload);\r\n}\r\n\r\nexport function useSubjects(params?: Partial<SubjectListQuery>) {\r\n return useQuery({\r\n queryKey: subjectKeys.list(params as Record<string, unknown> | undefined),\r\n queryFn: () => listSubjects(params),\r\n });\r\n}\r\n\r\nexport function useCreateSubject() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createSubject,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: subjectKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateSubject() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({ id, payload }: { id: string; payload: UpdateSubjectInput }) =>\r\n updateSubject(id, payload),\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: subjectKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport type { CreateSubjectInput, Subject, SubjectListQuery, UpdateSubjectInput };\r\n"]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { API_ENDPOINTS } from './chunk-MRFGUSN2.js';
|
|
2
|
+
import { postData, getData, putData } from './chunk-6JGO2CUT.js';
|
|
3
|
+
import { authKeys } from './chunk-PDMQWMZM.js';
|
|
4
|
+
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
5
|
+
|
|
6
|
+
var ENDPOINT = API_ENDPOINTS.auth;
|
|
7
|
+
async function login(payload) {
|
|
8
|
+
return postData(`${ENDPOINT}/login`, payload);
|
|
9
|
+
}
|
|
10
|
+
async function selectTenant(payload) {
|
|
11
|
+
return postData(`${ENDPOINT}/select-tenant`, payload);
|
|
12
|
+
}
|
|
13
|
+
async function switchRole(payload) {
|
|
14
|
+
return postData(`${ENDPOINT}/switch-role`, payload);
|
|
15
|
+
}
|
|
16
|
+
async function logout() {
|
|
17
|
+
await postData(`${ENDPOINT}/logout`);
|
|
18
|
+
}
|
|
19
|
+
async function getMe() {
|
|
20
|
+
return getData(`${ENDPOINT}/me`);
|
|
21
|
+
}
|
|
22
|
+
async function changePassword(payload) {
|
|
23
|
+
return putData(`${ENDPOINT}/change-password`, payload);
|
|
24
|
+
}
|
|
25
|
+
function useMe(options) {
|
|
26
|
+
return useQuery({
|
|
27
|
+
queryKey: authKeys.me(),
|
|
28
|
+
queryFn: getMe,
|
|
29
|
+
enabled: options?.enabled ?? true,
|
|
30
|
+
staleTime: 6e4,
|
|
31
|
+
...options
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function useLogin(options) {
|
|
35
|
+
const queryClient = useQueryClient();
|
|
36
|
+
return useMutation({
|
|
37
|
+
mutationFn: login,
|
|
38
|
+
onSuccess: (data, variables, context) => {
|
|
39
|
+
if (data.status === "SUCCESS") {
|
|
40
|
+
queryClient.invalidateQueries({ queryKey: authKeys.all });
|
|
41
|
+
}
|
|
42
|
+
options?.onSuccess?.(data, variables, context);
|
|
43
|
+
},
|
|
44
|
+
...options
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function useSelectTenant(options) {
|
|
48
|
+
const queryClient = useQueryClient();
|
|
49
|
+
return useMutation({
|
|
50
|
+
mutationFn: selectTenant,
|
|
51
|
+
onSuccess: (data, variables, context) => {
|
|
52
|
+
queryClient.invalidateQueries({ queryKey: authKeys.all });
|
|
53
|
+
options?.onSuccess?.(data, variables, context);
|
|
54
|
+
},
|
|
55
|
+
...options
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function useSwitchRole(options) {
|
|
59
|
+
const queryClient = useQueryClient();
|
|
60
|
+
return useMutation({
|
|
61
|
+
mutationFn: switchRole,
|
|
62
|
+
onSuccess: (data, variables, context) => {
|
|
63
|
+
queryClient.invalidateQueries({ queryKey: authKeys.all });
|
|
64
|
+
options?.onSuccess?.(data, variables, context);
|
|
65
|
+
},
|
|
66
|
+
...options
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function useLogout(options) {
|
|
70
|
+
const queryClient = useQueryClient();
|
|
71
|
+
return useMutation({
|
|
72
|
+
mutationFn: logout,
|
|
73
|
+
onSuccess: () => {
|
|
74
|
+
queryClient.clear();
|
|
75
|
+
options?.onSuccess?.(void 0, void 0, void 0);
|
|
76
|
+
},
|
|
77
|
+
...options
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function useChangePassword(options) {
|
|
81
|
+
return useMutation({
|
|
82
|
+
mutationFn: changePassword,
|
|
83
|
+
...options
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { changePassword, getMe, login, logout, selectTenant, switchRole, useChangePassword, useLogin, useLogout, useMe, useSelectTenant, useSwitchRole };
|
|
88
|
+
//# sourceMappingURL=chunk-BQDHQTPK.js.map
|
|
89
|
+
//# sourceMappingURL=chunk-BQDHQTPK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modules/auth/auth.api.ts"],"names":[],"mappings":";;;;;AAkBA,IAAM,WAAW,aAAA,CAAc,IAAA;AAgB/B,eAAsB,MAAM,OAAA,EAA+C;AACzE,EAAA,OAAO,QAAA,CAAsC,CAAA,EAAG,QAAQ,CAAA,MAAA,CAAA,EAAU,OAAO,CAAA;AAC3E;AAEA,eAAsB,aAAa,OAAA,EAAsD;AACvF,EAAA,OAAO,QAAA,CAA6C,CAAA,EAAG,QAAQ,CAAA,cAAA,CAAA,EAAkB,OAAO,CAAA;AAC1F;AAEA,eAAsB,WAAW,OAAA,EAAkD;AACjF,EAAA,OAAO,QAAA,CAAyC,CAAA,EAAG,QAAQ,CAAA,YAAA,CAAA,EAAgB,OAAO,CAAA;AACpF;AAEA,eAAsB,MAAA,GAAwB;AAC5C,EAAA,MAAM,QAAA,CAAe,CAAA,EAAG,QAAQ,CAAA,OAAA,CAAS,CAAA;AAC3C;AAEA,eAAsB,KAAA,GAA8B;AAClD,EAAA,OAAO,OAAA,CAAqB,CAAA,EAAG,QAAQ,CAAA,GAAA,CAAK,CAAA;AAC9C;AAEA,eAAsB,eAAe,OAAA,EAA8D;AACjG,EAAA,OAAO,OAAA,CAAoD,CAAA,EAAG,QAAQ,CAAA,gBAAA,CAAA,EAAoB,OAAO,CAAA;AACnG;AAEO,SAAS,MAAM,OAAA,EAAuE;AAC3F,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU,SAAS,EAAA,EAAG;AAAA,IACtB,OAAA,EAAS,KAAA;AAAA,IACT,OAAA,EAAS,SAAS,OAAA,IAAW,IAAA;AAAA,IAC7B,SAAA,EAAW,GAAA;AAAA,IACX,GAAG;AAAA,GACJ,CAAA;AACH;AAEO,SAAS,SAAS,OAAA,EAA8D;AACrF,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,KAAA;AAAA,IACZ,SAAA,EAAW,CAAC,IAAA,EAAM,SAAA,EAAW,OAAA,KAAY;AACvC,MAAA,IAAI,IAAA,CAAK,WAAW,SAAA,EAAW;AAC7B,QAAA,WAAA,CAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,QAAA,CAAS,KAAK,CAAA;AAAA,MAC1D;AACA,MAAA,OAAA,EAAS,SAAA,GAAY,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AAAA,IAC/C,CAAA;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;AAEO,SAAS,gBAAgB,OAAA,EAAqE;AACnG,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,YAAA;AAAA,IACZ,SAAA,EAAW,CAAC,IAAA,EAAM,SAAA,EAAW,OAAA,KAAY;AACvC,MAAA,WAAA,CAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,QAAA,CAAS,KAAK,CAAA;AACxD,MAAA,OAAA,EAAS,SAAA,GAAY,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AAAA,IAC/C,CAAA;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;AAEO,SAAS,cAAc,OAAA,EAAiE;AAC7F,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,UAAA;AAAA,IACZ,SAAA,EAAW,CAAC,IAAA,EAAM,SAAA,EAAW,OAAA,KAAY;AACvC,MAAA,WAAA,CAAY,iBAAA,CAAkB,EAAE,QAAA,EAAU,QAAA,CAAS,KAAK,CAAA;AACxD,MAAA,OAAA,EAAS,SAAA,GAAY,IAAA,EAAM,SAAA,EAAW,OAAO,CAAA;AAAA,IAC/C,CAAA;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;AAEO,SAAS,UAAU,OAAA,EAA6C;AACrE,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,MAAA;AAAA,IACZ,WAAW,MAAM;AACf,MAAA,WAAA,CAAY,KAAA,EAAM;AAClB,MAAA,OAAA,EAAS,SAAA,GAAY,MAAA,EAAW,MAAA,EAAW,MAAS,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,GAAG;AAAA,GACJ,CAAA;AACH;AAEO,SAAS,kBAAkB,OAAA,EAA6E;AAC7G,EAAA,OAAO,WAAA,CAAY;AAAA,IACjB,UAAA,EAAY,cAAA;AAAA,IACZ,GAAG;AAAA,GACJ,CAAA;AACH","file":"chunk-BQDHQTPK.js","sourcesContent":["import type {\r\n AuthSession,\r\n ChangePasswordRequest,\r\n LoginRequest,\r\n LoginResponse,\r\n Role,\r\n SelectTenantRequest,\r\n SwitchRoleRequest,\r\n Tenant,\r\n TenantOption,\r\n UserProfile,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { getData, postData, putData } from \"../../client/http\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { authKeys } from \"../../keys\";\r\nimport type { MutationOptionsCustom, QueryOptionsWithoutKey } from \"../../client/types\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.auth;\r\n\r\nexport interface AuthUserSummary {\r\n id: string;\r\n username: string;\r\n email: string | null;\r\n fullName: string;\r\n}\r\n\r\n/** Payload `GET /auth/me`: sesi + profil ringkas user + tenant aktif. */\r\nexport interface AuthSessionPayload {\r\n session: AuthSession;\r\n user: AuthUserSummary;\r\n tenant: Tenant;\r\n}\r\n\r\nexport async function login(payload: LoginRequest): Promise<LoginResponse> {\r\n return postData<LoginResponse, LoginRequest>(`${ENDPOINT}/login`, payload);\r\n}\r\n\r\nexport async function selectTenant(payload: SelectTenantRequest): Promise<LoginResponse> {\r\n return postData<LoginResponse, SelectTenantRequest>(`${ENDPOINT}/select-tenant`, payload);\r\n}\r\n\r\nexport async function switchRole(payload: SwitchRoleRequest): Promise<AuthSession> {\r\n return postData<AuthSession, SwitchRoleRequest>(`${ENDPOINT}/switch-role`, payload);\r\n}\r\n\r\nexport async function logout(): Promise<void> {\r\n await postData<void>(`${ENDPOINT}/logout`);\r\n}\r\n\r\nexport async function getMe(): Promise<AuthSession> {\r\n return getData<AuthSession>(`${ENDPOINT}/me`);\r\n}\r\n\r\nexport async function changePassword(payload: ChangePasswordRequest): Promise<{ message: string }> {\r\n return putData<{ message: string }, ChangePasswordRequest>(`${ENDPOINT}/change-password`, payload);\r\n}\r\n\r\nexport function useMe(options?: QueryOptionsWithoutKey<AuthSession> & { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: authKeys.me(),\r\n queryFn: getMe,\r\n enabled: options?.enabled ?? true,\r\n staleTime: 60_000,\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useLogin(options?: MutationOptionsCustom<LoginResponse, LoginRequest>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: login,\r\n onSuccess: (data, variables, context) => {\r\n if (data.status === \"SUCCESS\") {\r\n queryClient.invalidateQueries({ queryKey: authKeys.all });\r\n }\r\n options?.onSuccess?.(data, variables, context);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useSelectTenant(options?: MutationOptionsCustom<LoginResponse, SelectTenantRequest>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: selectTenant,\r\n onSuccess: (data, variables, context) => {\r\n queryClient.invalidateQueries({ queryKey: authKeys.all });\r\n options?.onSuccess?.(data, variables, context);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useSwitchRole(options?: MutationOptionsCustom<AuthSession, SwitchRoleRequest>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: switchRole,\r\n onSuccess: (data, variables, context) => {\r\n queryClient.invalidateQueries({ queryKey: authKeys.all });\r\n options?.onSuccess?.(data, variables, context);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useLogout(options?: MutationOptionsCustom<void, void>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: logout,\r\n onSuccess: () => {\r\n queryClient.clear();\r\n options?.onSuccess?.(undefined, undefined, undefined);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useChangePassword(options?: MutationOptionsCustom<{ message: string }, ChangePasswordRequest>) {\r\n return useMutation({\r\n mutationFn: changePassword,\r\n ...options,\r\n });\r\n}\r\n\r\nexport type {\r\n AuthSession,\r\n ChangePasswordRequest,\r\n LoginRequest,\r\n LoginResponse,\r\n Role,\r\n SelectTenantRequest,\r\n SwitchRoleRequest,\r\n TenantOption,\r\n UserProfile,\r\n};\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkQJSOSQ7M_cjs = require('./chunk-QJSOSQ7M.cjs');
|
|
4
4
|
var chunkNGFFI4XQ_cjs = require('./chunk-NGFFI4XQ.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkN7CHJ3EM_cjs = require('./chunk-N7CHJ3EM.cjs');
|
|
6
6
|
var reactQuery = require('@tanstack/react-query');
|
|
7
7
|
|
|
8
8
|
var ENDPOINT = chunkQJSOSQ7M_cjs.API_ENDPOINTS.users;
|
|
@@ -10,7 +10,8 @@ async function listRoles() {
|
|
|
10
10
|
return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/roles`);
|
|
11
11
|
}
|
|
12
12
|
async function listTeachers(params) {
|
|
13
|
-
|
|
13
|
+
const result = await chunkNGFFI4XQ_cjs.getPaginated(`${ENDPOINT}/teachers`, { params });
|
|
14
|
+
return result.items;
|
|
14
15
|
}
|
|
15
16
|
async function getTeacher(id) {
|
|
16
17
|
return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/teachers/${id}`);
|
|
@@ -28,17 +29,17 @@ async function assignUserRoles(payload) {
|
|
|
28
29
|
);
|
|
29
30
|
}
|
|
30
31
|
function useRoles() {
|
|
31
|
-
return reactQuery.useQuery({ queryKey:
|
|
32
|
+
return reactQuery.useQuery({ queryKey: chunkN7CHJ3EM_cjs.userKeys.roles(), queryFn: listRoles, staleTime: 5 * 6e4 });
|
|
32
33
|
}
|
|
33
34
|
function useTeachers(params) {
|
|
34
35
|
return reactQuery.useQuery({
|
|
35
|
-
queryKey:
|
|
36
|
+
queryKey: chunkN7CHJ3EM_cjs.userKeys.teachers(params),
|
|
36
37
|
queryFn: () => listTeachers(params)
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
function useTeacher(id, options) {
|
|
40
41
|
return reactQuery.useQuery({
|
|
41
|
-
queryKey:
|
|
42
|
+
queryKey: chunkN7CHJ3EM_cjs.userKeys.teacherDetail(id),
|
|
42
43
|
queryFn: () => getTeacher(id),
|
|
43
44
|
enabled: options?.enabled ?? Boolean(id)
|
|
44
45
|
});
|
|
@@ -48,7 +49,7 @@ function useCreateTeacher() {
|
|
|
48
49
|
return reactQuery.useMutation({
|
|
49
50
|
mutationFn: createTeacher,
|
|
50
51
|
onSuccess: async () => {
|
|
51
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
52
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.userKeys.all });
|
|
52
53
|
}
|
|
53
54
|
});
|
|
54
55
|
}
|
|
@@ -57,8 +58,8 @@ function useUpdateTeacher() {
|
|
|
57
58
|
return reactQuery.useMutation({
|
|
58
59
|
mutationFn: ({ id, payload }) => updateTeacher(id, payload),
|
|
59
60
|
onSuccess: async (_data, variables) => {
|
|
60
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
61
|
-
await queryClient.invalidateQueries({ queryKey:
|
|
61
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.userKeys.teacherDetail(variables.id) });
|
|
62
|
+
await queryClient.invalidateQueries({ queryKey: chunkN7CHJ3EM_cjs.userKeys.all });
|
|
62
63
|
}
|
|
63
64
|
});
|
|
64
65
|
}
|
|
@@ -84,5 +85,5 @@ exports.useRoles = useRoles;
|
|
|
84
85
|
exports.useTeacher = useTeacher;
|
|
85
86
|
exports.useTeachers = useTeachers;
|
|
86
87
|
exports.useUpdateTeacher = useUpdateTeacher;
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-DBKYIIPQ.cjs.map
|
|
89
|
+
//# sourceMappingURL=chunk-DBKYIIPQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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-DBKYIIPQ.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"]}
|