@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.
Files changed (102) hide show
  1. package/dist/{chunk-4ECXVAIQ.cjs → chunk-2IFQLECT.cjs} +6 -6
  2. package/dist/{chunk-4ECXVAIQ.cjs.map → chunk-2IFQLECT.cjs.map} +1 -1
  3. package/dist/{chunk-TSLEYQKD.cjs → chunk-6TPAWAST.cjs} +11 -11
  4. package/dist/{chunk-TSLEYQKD.cjs.map → chunk-6TPAWAST.cjs.map} +1 -1
  5. package/dist/{chunk-DNNK2DMM.cjs → chunk-7XRQ255H.cjs} +19 -16
  6. package/dist/chunk-7XRQ255H.cjs.map +1 -0
  7. package/dist/{chunk-S6QFHKCE.js → chunk-A5QDNC7Y.js} +13 -10
  8. package/dist/chunk-A5QDNC7Y.js.map +1 -0
  9. package/dist/{chunk-XU5UEIBL.js → chunk-ANLONSKR.js} +3 -3
  10. package/dist/{chunk-XU5UEIBL.js.map → chunk-ANLONSKR.js.map} +1 -1
  11. package/dist/chunk-BQDHQTPK.js +89 -0
  12. package/dist/chunk-BQDHQTPK.js.map +1 -0
  13. package/dist/{chunk-OKSRSOYJ.cjs → chunk-DBKYIIPQ.cjs} +11 -10
  14. package/dist/chunk-DBKYIIPQ.cjs.map +1 -0
  15. package/dist/{chunk-R7ACSDOA.cjs → chunk-DUULXOBJ.cjs} +17 -14
  16. package/dist/chunk-DUULXOBJ.cjs.map +1 -0
  17. package/dist/{chunk-NBVPN4KL.cjs → chunk-DYBHD45V.cjs} +4 -4
  18. package/dist/{chunk-NBVPN4KL.cjs.map → chunk-DYBHD45V.cjs.map} +1 -1
  19. package/dist/{chunk-CP46K2UB.cjs → chunk-HTGZJQNS.cjs} +45 -17
  20. package/dist/chunk-HTGZJQNS.cjs.map +1 -0
  21. package/dist/{chunk-AGNLUQKT.cjs → chunk-JZP57ZKZ.cjs} +5 -5
  22. package/dist/{chunk-AGNLUQKT.cjs.map → chunk-JZP57ZKZ.cjs.map} +1 -1
  23. package/dist/{chunk-6UCHRWSL.js → chunk-LMSX35HO.js} +3 -3
  24. package/dist/{chunk-6UCHRWSL.js.map → chunk-LMSX35HO.js.map} +1 -1
  25. package/dist/{chunk-GKKJMRCL.js → chunk-LNGJA2UL.js} +6 -5
  26. package/dist/chunk-LNGJA2UL.js.map +1 -0
  27. package/dist/{chunk-XVG5Z6B5.cjs → chunk-N7CHJ3EM.cjs} +4 -3
  28. package/dist/{chunk-XVG5Z6B5.cjs.map → chunk-N7CHJ3EM.cjs.map} +1 -1
  29. package/dist/{chunk-ALMSFTRM.js → chunk-PDMQWMZM.js} +4 -3
  30. package/dist/{chunk-ALMSFTRM.js.map → chunk-PDMQWMZM.js.map} +1 -1
  31. package/dist/{chunk-GUJVCKEN.js → chunk-S7N3GQOE.js} +12 -9
  32. package/dist/chunk-S7N3GQOE.js.map +1 -0
  33. package/dist/{chunk-R37QQTQS.cjs → chunk-SSPEC3OA.cjs} +6 -6
  34. package/dist/{chunk-R37QQTQS.cjs.map → chunk-SSPEC3OA.cjs.map} +1 -1
  35. package/dist/{chunk-3RS57C3E.cjs → chunk-T2TWWLVZ.cjs} +31 -23
  36. package/dist/chunk-T2TWWLVZ.cjs.map +1 -0
  37. package/dist/{chunk-YK7QFPBF.js → chunk-T6NCBXWC.js} +3 -3
  38. package/dist/{chunk-YK7QFPBF.js.map → chunk-T6NCBXWC.js.map} +1 -1
  39. package/dist/{chunk-LA7MRXWR.js → chunk-WMH2DW3N.js} +3 -3
  40. package/dist/{chunk-LA7MRXWR.js.map → chunk-WMH2DW3N.js.map} +1 -1
  41. package/dist/{chunk-AOBHBJ2G.cjs → chunk-WPMDE5ZF.cjs} +16 -13
  42. package/dist/chunk-WPMDE5ZF.cjs.map +1 -0
  43. package/dist/{chunk-DMEWJ56D.js → chunk-XOFGB2GD.js} +10 -7
  44. package/dist/chunk-XOFGB2GD.js.map +1 -0
  45. package/dist/{chunk-YA2KONBB.js → chunk-ZDBSD2VY.js} +3 -3
  46. package/dist/{chunk-YA2KONBB.js.map → chunk-ZDBSD2VY.js.map} +1 -1
  47. package/dist/{chunk-GRBBLS5Y.js → chunk-ZPJ5WHAK.js} +29 -21
  48. package/dist/chunk-ZPJ5WHAK.js.map +1 -0
  49. package/dist/index.cjs +146 -138
  50. package/dist/index.d.cts +2 -2
  51. package/dist/index.d.ts +2 -2
  52. package/dist/index.js +12 -12
  53. package/dist/keys/index.cjs +13 -13
  54. package/dist/keys/index.d.cts +1 -0
  55. package/dist/keys/index.d.ts +1 -0
  56. package/dist/keys/index.js +1 -1
  57. package/dist/modules/academic/index.cjs +10 -10
  58. package/dist/modules/academic/index.js +2 -2
  59. package/dist/modules/attendance/index.cjs +16 -16
  60. package/dist/modules/attendance/index.d.cts +6 -5
  61. package/dist/modules/attendance/index.d.ts +6 -5
  62. package/dist/modules/attendance/index.js +2 -2
  63. package/dist/modules/auth/index.cjs +20 -12
  64. package/dist/modules/auth/index.d.cts +112 -15
  65. package/dist/modules/auth/index.d.ts +112 -15
  66. package/dist/modules/auth/index.js +2 -2
  67. package/dist/modules/classroom/index.cjs +14 -14
  68. package/dist/modules/classroom/index.d.cts +3 -1
  69. package/dist/modules/classroom/index.d.ts +3 -1
  70. package/dist/modules/classroom/index.js +2 -2
  71. package/dist/modules/lead/index.cjs +10 -10
  72. package/dist/modules/lead/index.js +2 -2
  73. package/dist/modules/student/index.cjs +18 -18
  74. package/dist/modules/student/index.d.cts +4 -2
  75. package/dist/modules/student/index.d.ts +4 -2
  76. package/dist/modules/student/index.js +2 -2
  77. package/dist/modules/subject/index.cjs +8 -8
  78. package/dist/modules/subject/index.js +2 -2
  79. package/dist/modules/system/index.cjs +4 -4
  80. package/dist/modules/system/index.js +2 -2
  81. package/dist/modules/teaching-schedule/index.cjs +14 -14
  82. package/dist/modules/teaching-schedule/index.d.cts +12 -7
  83. package/dist/modules/teaching-schedule/index.d.ts +12 -7
  84. package/dist/modules/teaching-schedule/index.js +2 -2
  85. package/dist/modules/tenant/index.cjs +16 -16
  86. package/dist/modules/tenant/index.js +2 -2
  87. package/dist/modules/user/index.cjs +14 -14
  88. package/dist/modules/user/index.js +2 -2
  89. package/package.json +137 -138
  90. package/dist/chunk-3RS57C3E.cjs.map +0 -1
  91. package/dist/chunk-4T52ABA5.js +0 -63
  92. package/dist/chunk-4T52ABA5.js.map +0 -1
  93. package/dist/chunk-AOBHBJ2G.cjs.map +0 -1
  94. package/dist/chunk-CP46K2UB.cjs.map +0 -1
  95. package/dist/chunk-DMEWJ56D.js.map +0 -1
  96. package/dist/chunk-DNNK2DMM.cjs.map +0 -1
  97. package/dist/chunk-GKKJMRCL.js.map +0 -1
  98. package/dist/chunk-GRBBLS5Y.js.map +0 -1
  99. package/dist/chunk-GUJVCKEN.js.map +0 -1
  100. package/dist/chunk-OKSRSOYJ.cjs.map +0 -1
  101. package/dist/chunk-R7ACSDOA.cjs.map +0 -1
  102. 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 chunkXVG5Z6B5_cjs = require('./chunk-XVG5Z6B5.cjs');
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: chunkXVG5Z6B5_cjs.subjectKeys.list(params),
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: chunkXVG5Z6B5_cjs.subjectKeys.all });
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: chunkXVG5Z6B5_cjs.subjectKeys.all });
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-4ECXVAIQ.cjs.map
50
- //# sourceMappingURL=chunk-4ECXVAIQ.cjs.map
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-4ECXVAIQ.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"]}
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 chunkXVG5Z6B5_cjs = require('./chunk-XVG5Z6B5.cjs');
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: chunkXVG5Z6B5_cjs.tenantKeys.current(), queryFn: getCurrentTenant });
31
+ return reactQuery.useQuery({ queryKey: chunkN7CHJ3EM_cjs.tenantKeys.current(), queryFn: getCurrentTenant });
32
32
  }
33
33
  function useTenantModules() {
34
- return reactQuery.useQuery({ queryKey: chunkXVG5Z6B5_cjs.tenantKeys.modules(), queryFn: getTenantModules });
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: chunkXVG5Z6B5_cjs.tenantKeys.shifts(params),
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: chunkXVG5Z6B5_cjs.tenantKeys.shiftDetail(targetType),
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(chunkXVG5Z6B5_cjs.tenantKeys.current(), tenant);
54
- await queryClient.invalidateQueries({ queryKey: chunkXVG5Z6B5_cjs.tenantKeys.all });
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: chunkXVG5Z6B5_cjs.tenantKeys.shifts() });
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: chunkXVG5Z6B5_cjs.tenantKeys.all });
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-TSLEYQKD.cjs.map
92
- //# sourceMappingURL=chunk-TSLEYQKD.cjs.map
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-TSLEYQKD.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"]}
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 chunkXVG5Z6B5_cjs = require('./chunk-XVG5Z6B5.cjs');
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
- return chunkNGFFI4XQ_cjs.getData(ENDPOINT, { params });
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: chunkXVG5Z6B5_cjs.studentKeys.list(params),
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: chunkXVG5Z6B5_cjs.studentKeys.detail(id),
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: chunkXVG5Z6B5_cjs.studentKeys.kioskCache(),
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: chunkXVG5Z6B5_cjs.studentKeys.qrCode(id),
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: chunkXVG5Z6B5_cjs.studentKeys.all });
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: chunkXVG5Z6B5_cjs.studentKeys.detail(variables.id) });
79
- await queryClient.invalidateQueries({ queryKey: chunkXVG5Z6B5_cjs.studentKeys.all });
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: chunkXVG5Z6B5_cjs.studentKeys.all });
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: async () => {
97
- await queryClient.invalidateQueries({ queryKey: chunkXVG5Z6B5_cjs.studentKeys.all });
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-DNNK2DMM.cjs.map
119
- //# sourceMappingURL=chunk-DNNK2DMM.cjs.map
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-ALMSFTRM.js';
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(params) {
60
+ function usePicketSchedules(options) {
61
61
  return useQuery({
62
- queryKey: attendanceKeys.picketSchedules(params),
63
- queryFn: () => listPicketSchedules(params)
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: async () => {
92
- await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });
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-S6QFHKCE.js.map
99
- //# sourceMappingURL=chunk-S6QFHKCE.js.map
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-ALMSFTRM.js';
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-XU5UEIBL.js.map
43
- //# sourceMappingURL=chunk-XU5UEIBL.js.map
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-XU5UEIBL.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"]}
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":"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","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 chunkXVG5Z6B5_cjs = require('./chunk-XVG5Z6B5.cjs');
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
- return chunkNGFFI4XQ_cjs.getData(`${ENDPOINT}/teachers`, { params });
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: chunkXVG5Z6B5_cjs.userKeys.roles(), queryFn: listRoles, staleTime: 5 * 6e4 });
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: chunkXVG5Z6B5_cjs.userKeys.teachers(params),
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: chunkXVG5Z6B5_cjs.userKeys.teacherDetail(id),
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: chunkXVG5Z6B5_cjs.userKeys.all });
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: chunkXVG5Z6B5_cjs.userKeys.teacherDetail(variables.id) });
61
- await queryClient.invalidateQueries({ queryKey: chunkXVG5Z6B5_cjs.userKeys.all });
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-OKSRSOYJ.cjs.map
88
- //# sourceMappingURL=chunk-OKSRSOYJ.cjs.map
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"]}