@neutron.co.id/pendidikan-operation 1.29.8 → 1.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/build/@packages/pendidikan-operation/@package/actions/deleteStudentProgram/deleteStudentProgram.action.cjs +77 -0
  2. package/build/@packages/pendidikan-operation/@package/actions/deleteStudentProgram/deleteStudentProgram.action.mjs +75 -0
  3. package/build/@packages/pendidikan-operation/@package/actions/deleteStudentProgram/deleteStudentProgram.schema.cjs +11 -0
  4. package/build/@packages/pendidikan-operation/@package/actions/deleteStudentProgram/deleteStudentProgram.schema.mjs +9 -0
  5. package/build/@packages/pendidikan-operation/@package/actions/exportStudentProgram/exportStudentProgram.action.cjs +171 -0
  6. package/build/@packages/pendidikan-operation/@package/actions/exportStudentProgram/exportStudentProgram.action.mjs +169 -0
  7. package/build/@packages/pendidikan-operation/@package/actions/exportStudentProgram/exportStudentProgram.schema.cjs +11 -0
  8. package/build/@packages/pendidikan-operation/@package/actions/exportStudentProgram/exportStudentProgram.schema.mjs +9 -0
  9. package/build/@packages/pendidikan-operation/@package/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.action.cjs +200 -0
  10. package/build/@packages/pendidikan-operation/@package/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.action.mjs +198 -0
  11. package/build/@packages/pendidikan-operation/@package/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.schema.cjs +14 -0
  12. package/build/@packages/pendidikan-operation/@package/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.schema.mjs +12 -0
  13. package/build/{providers → @packages/pendidikan-operation/@package/providers}/akademik/useAkademik.cjs +53 -4
  14. package/build/{providers → @packages/pendidikan-operation/@package/providers}/akademik/useAkademik.mjs +53 -4
  15. package/build/_virtual/_commonjsHelpers.cjs +5 -0
  16. package/build/_virtual/_commonjsHelpers.mjs +3 -0
  17. package/build/_virtual/papaparse.cjs +5 -0
  18. package/build/_virtual/papaparse.mjs +3 -0
  19. package/build/actions/checkStudentProgramExistance/checkStudentProgramExistance.action.d.ts +1 -1
  20. package/build/actions/checkStudentProgramExistance/checkStudentProgramExistance.schema.d.ts +2 -2
  21. package/build/actions/deleteStudentProgram/deleteStudentProgram.action.d.ts +13 -0
  22. package/build/actions/deleteStudentProgram/deleteStudentProgram.schema.d.ts +8 -0
  23. package/build/actions/deleteStudentProgram/index.d.ts +1 -0
  24. package/build/actions/exportStudentProgram/exportStudentProgram.action.d.ts +13 -0
  25. package/build/actions/exportStudentProgram/exportStudentProgram.schema.d.ts +8 -0
  26. package/build/actions/exportStudentProgram/index.d.ts +1 -0
  27. package/build/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.action.d.ts +13 -0
  28. package/build/actions/giveModuleAccessByProgram/giveModuleAccessByProgram.schema.d.ts +11 -0
  29. package/build/actions/giveModuleAccessByProgram/index.d.ts +2 -0
  30. package/build/actions/index.d.ts +3 -0
  31. package/build/actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.action.d.ts +1 -1
  32. package/build/actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.d.ts +2 -2
  33. package/build/index.cjs +110 -99
  34. package/build/index.d.ts +12 -2
  35. package/build/index.mjs +109 -102
  36. package/build/providers/akademik/useAkademik.d.ts +12 -2
  37. package/package.json +12 -6
  38. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStaffId.cjs +0 -0
  39. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStaffId.mjs +0 -0
  40. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStaffPoint.cjs +0 -0
  41. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStaffPoint.mjs +0 -0
  42. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStudentId.cjs +0 -0
  43. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStudentId.mjs +0 -0
  44. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStudentPoint.cjs +0 -0
  45. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getStudentPoint.mjs +0 -0
  46. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getTeacherPoint.cjs +0 -0
  47. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.getTeacherPoint.mjs +0 -0
  48. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.presenceSessionStudent.cjs +0 -0
  49. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.presenceSessionStudent.mjs +0 -0
  50. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.presenceSessionTeacher.cjs +0 -0
  51. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.presenceSessionTeacher.mjs +0 -0
  52. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncCommitment.cjs +0 -0
  53. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncCommitment.mjs +0 -0
  54. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentAdmisi.cjs +0 -0
  55. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentAdmisi.mjs +0 -0
  56. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentBranch.cjs +0 -0
  57. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentBranch.mjs +0 -0
  58. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentInformation.cjs +0 -0
  59. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudentInformation.mjs +0 -0
  60. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudents.cjs +0 -0
  61. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/action.syncStudents.mjs +0 -0
  62. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/sendPointNotification/sendPointNotification.action.cjs +0 -0
  63. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/sendPointNotification/sendPointNotification.action.mjs +0 -0
  64. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/sendPointNotification/sendPointNotification.schema.cjs +0 -0
  65. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/sendPointNotification/sendPointNotification.schema.mjs +0 -0
  66. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/studentReport/syncStudentReport.action.cjs +0 -0
  67. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/studentReport/syncStudentReport.action.mjs +0 -0
  68. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/studentReport/syncStudentReport.schema.cjs +0 -0
  69. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/studentReport/syncStudentReport.schema.mjs +0 -0
  70. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/updateReportStudent/updateReportStudent.action.cjs +0 -0
  71. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/updateReportStudent/updateReportStudent.action.mjs +0 -0
  72. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/updateReportStudent/updateReportStudent.schema.cjs +0 -0
  73. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/akademik/updateReportStudent/updateReportStudent.schema.mjs +0 -0
  74. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkProgramExistance/checkProgramExistance.action.cjs +0 -0
  75. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkProgramExistance/checkProgramExistance.action.mjs +0 -0
  76. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkProgramExistance/checkProgramExistance.schema.cjs +0 -0
  77. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkProgramExistance/checkProgramExistance.schema.mjs +0 -0
  78. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkStudentProgramExistance/checkStudentProgramExistance.action.cjs +0 -0
  79. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkStudentProgramExistance/checkStudentProgramExistance.action.mjs +0 -0
  80. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkStudentProgramExistance/checkStudentProgramExistance.schema.cjs +0 -0
  81. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/checkStudentProgramExistance/checkStudentProgramExistance.schema.mjs +0 -0
  82. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/importData/importData.action.cjs +0 -0
  83. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/importData/importData.action.mjs +0 -0
  84. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/importData/importData.schema.cjs +0 -0
  85. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/importData/importData.schema.mjs +0 -0
  86. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.allConflict.cjs +0 -0
  87. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.allConflict.mjs +0 -0
  88. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.bulkDeleteSession.cjs +0 -0
  89. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.bulkDeleteSession.mjs +0 -0
  90. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.bulkUpdateSession.cjs +0 -0
  91. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.bulkUpdateSession.mjs +0 -0
  92. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.checkClassAttendance.cjs +0 -0
  93. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.checkClassAttendance.mjs +0 -0
  94. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.classSessionInventoryOccurs.cjs +0 -0
  95. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.classSessionInventoryOccurs.mjs +0 -0
  96. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.classSessionInventoryPreparation.cjs +0 -0
  97. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.classSessionInventoryPreparation.mjs +0 -0
  98. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.createManySession.cjs +0 -0
  99. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.createManySession.mjs +0 -0
  100. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.customSaveOneClassSession.cjs +0 -0
  101. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.customSaveOneClassSession.mjs +0 -0
  102. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.deleteManySession.cjs +0 -0
  103. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.deleteManySession.mjs +0 -0
  104. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.prepareConflict.cjs +0 -0
  105. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.prepareConflict.mjs +0 -0
  106. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.userCountStats.cjs +0 -0
  107. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/action.userCountStats.mjs +0 -0
  108. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/getClassSessionConflicts/getClassSessionConflicts.action.cjs +0 -0
  109. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/getClassSessionConflicts/getClassSessionConflicts.action.mjs +0 -0
  110. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.cjs +0 -0
  111. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.mjs +0 -0
  112. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.action.cjs +0 -0
  113. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.action.mjs +0 -0
  114. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.schema.cjs +0 -0
  115. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.schema.mjs +0 -0
  116. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassSessionNotification/sendClassSessionNotification.action.cjs +0 -0
  117. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassSessionNotification/sendClassSessionNotification.action.mjs +0 -0
  118. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassSessionNotification/sendClassSessionNotification.schema.cjs +0 -0
  119. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/sendClassSessionNotification/sendClassSessionNotification.schema.mjs +0 -0
  120. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.action.cjs +0 -0
  121. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.action.mjs +0 -0
  122. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.cjs +0 -0
  123. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.mjs +0 -0
  124. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setClassSessionDependencies/setClassSessionDependencies.action.cjs +0 -0
  125. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setClassSessionDependencies/setClassSessionDependencies.action.mjs +0 -0
  126. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setClassSessionDependencies/setClassSessionDependencies.schema.cjs +0 -0
  127. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setClassSessionDependencies/setClassSessionDependencies.schema.mjs +0 -0
  128. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setTravelWageSessions/setTravelWageSessions.action.cjs +0 -0
  129. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setTravelWageSessions/setTravelWageSessions.action.mjs +0 -0
  130. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setTravelWageSessions/setTravelWageSessions.schema.cjs +0 -0
  131. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/setTravelWageSessions/setTravelWageSessions.schema.mjs +0 -0
  132. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassGroups/syncClassGroups.action.cjs +0 -0
  133. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassGroups/syncClassGroups.action.mjs +0 -0
  134. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassGroups/syncClassGroups.schema.cjs +0 -0
  135. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassGroups/syncClassGroups.schema.mjs +0 -0
  136. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassSessions/syncClassSessions.action.cjs +0 -0
  137. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassSessions/syncClassSessions.action.mjs +0 -0
  138. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassSessions/syncClassSessions.schema.cjs +0 -0
  139. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/jadwal/syncClassSessions/syncClassSessions.schema.mjs +0 -0
  140. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/mediaScanter/prepareMediaScanterGradingInsert/prepareMediaScanterGradingInsert.action.cjs +0 -0
  141. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/mediaScanter/prepareMediaScanterGradingInsert/prepareMediaScanterGradingInsert.action.mjs +0 -0
  142. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/mediaScanter/prepareMediaScanterGradingInsert/prepareMediaScanterGradingInsert.schema.cjs +0 -0
  143. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/mediaScanter/prepareMediaScanterGradingInsert/prepareMediaScanterGradingInsert.schema.mjs +0 -0
  144. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingComponentByType/getGradingComponentByType.action.cjs +0 -0
  145. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingComponentByType/getGradingComponentByType.action.mjs +0 -0
  146. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingComponentByType/getGradingComponentByType.schema.cjs +0 -0
  147. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingComponentByType/getGradingComponentByType.schema.mjs +0 -0
  148. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingCount/action.getGradingCount.cjs +0 -0
  149. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingCount/action.getGradingCount.mjs +0 -0
  150. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingStudent/getGradingStudent.action.cjs +0 -0
  151. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingStudent/getGradingStudent.action.mjs +0 -0
  152. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingStudent/getGradingStudent.schema.cjs +0 -0
  153. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingStudent/getGradingStudent.schema.mjs +0 -0
  154. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingTypeByYear/getGradingTypeByYear.action.cjs +0 -0
  155. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingTypeByYear/getGradingTypeByYear.action.mjs +0 -0
  156. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingTypeByYear/getGradingTypeByYear.schema.cjs +0 -0
  157. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getGradingTypeByYear/getGradingTypeByYear.schema.mjs +0 -0
  158. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getScoreStudent/getScoreStudent.action.cjs +0 -0
  159. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getScoreStudent/getScoreStudent.action.mjs +0 -0
  160. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getScoreStudent/getScoreStudent.schema.cjs +0 -0
  161. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/getScoreStudent/getScoreStudent.schema.mjs +0 -0
  162. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshGrading/refreshGrading.action.cjs +0 -0
  163. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshGrading/refreshGrading.action.mjs +0 -0
  164. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshGrading/refreshGrading.schema.cjs +0 -0
  165. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshGrading/refreshGrading.schema.mjs +0 -0
  166. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshManyGrading/refreshManyGrading.action.cjs +0 -0
  167. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshManyGrading/refreshManyGrading.action.mjs +0 -0
  168. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshManyGrading/refreshManyGrading.schema.cjs +0 -0
  169. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/refreshManyGrading/refreshManyGrading.schema.mjs +0 -0
  170. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/sendScoreNotification/sendScoreNotification.action.cjs +0 -0
  171. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/sendScoreNotification/sendScoreNotification.action.mjs +0 -0
  172. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/sendScoreNotification/sendScoreNotification.schema.cjs +0 -0
  173. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/penilaian/sendScoreNotification/sendScoreNotification.schema.mjs +0 -0
  174. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/prepareExperience/prepareExperience.action.cjs +0 -0
  175. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/prepareExperience/prepareExperience.action.mjs +0 -0
  176. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/prepareExperience/prepareExperience.schema.cjs +0 -0
  177. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/prepareExperience/prepareExperience.schema.mjs +0 -0
  178. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.addManyGradingComponent.cjs +0 -0
  179. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.addManyGradingComponent.mjs +0 -0
  180. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateGrading.cjs +0 -0
  181. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateGrading.mjs +0 -0
  182. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateManyComparator.cjs +0 -0
  183. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateManyComparator.mjs +0 -0
  184. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateOneComparator.cjs +0 -0
  185. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.calculateOneComparator.mjs +0 -0
  186. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearAllOverrides.cjs +0 -0
  187. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearAllOverrides.mjs +0 -0
  188. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearGrading.cjs +0 -0
  189. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearGrading.mjs +0 -0
  190. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearOneOverrides.cjs +0 -0
  191. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.clearOneOverrides.mjs +0 -0
  192. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.createGradingAndScores.cjs +0 -0
  193. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.createGradingAndScores.mjs +0 -0
  194. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.generateGrading.cjs +0 -0
  195. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.generateGrading.mjs +0 -0
  196. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.rasionalizeGrading.cjs +0 -0
  197. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.rasionalizeGrading.mjs +0 -0
  198. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.updateGradingAndScores.cjs +0 -0
  199. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/rasionalisasi/action.updateGradingAndScores.mjs +0 -0
  200. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/refreshModuleAccess/refreshModuleAccess.action.cjs +0 -0
  201. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/refreshModuleAccess/refreshModuleAccess.action.mjs +0 -0
  202. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/refreshModuleAccess/refreshModuleAccess.schema.cjs +0 -0
  203. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/refreshModuleAccess/refreshModuleAccess.schema.mjs +0 -0
  204. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccess/replaceModuleAccess.action.cjs +0 -0
  205. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccess/replaceModuleAccess.action.mjs +0 -0
  206. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccess/replaceModuleAccess.schema.cjs +0 -0
  207. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccess/replaceModuleAccess.schema.mjs +0 -0
  208. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccessManyStudent/replaceModuleAccessManyStudent.action.cjs +0 -0
  209. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccessManyStudent/replaceModuleAccessManyStudent.action.mjs +0 -0
  210. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccessManyStudent/replaceModuleAccessManyStudent.schema.cjs +0 -0
  211. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/replaceModuleAccessManyStudent/replaceModuleAccessManyStudent.schema.mjs +0 -0
  212. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.acceptQuestion.cjs +0 -0
  213. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.acceptQuestion.mjs +0 -0
  214. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.editAnswer.cjs +0 -0
  215. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.editAnswer.mjs +0 -0
  216. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.getQuestionCount.cjs +0 -0
  217. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.getQuestionCount.mjs +0 -0
  218. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.hasUnderstand.cjs +0 -0
  219. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.hasUnderstand.mjs +0 -0
  220. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.notUnderstand.cjs +0 -0
  221. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.notUnderstand.mjs +0 -0
  222. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.reminderQuestions.cjs +0 -0
  223. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.reminderQuestions.mjs +0 -0
  224. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.sendAnswer.cjs +0 -0
  225. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.sendAnswer.mjs +0 -0
  226. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.sendQuestion.cjs +0 -0
  227. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/tanya/action.sendQuestion.mjs +0 -0
  228. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/updateMany/updateMany.action.cjs +0 -0
  229. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/updateMany/updateMany.action.mjs +0 -0
  230. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/updateMany/updateMany.schema.cjs +0 -0
  231. /package/build/{actions → @packages/pendidikan-operation/@package/actions}/updateMany/updateMany.schema.mjs +0 -0
  232. /package/build/{constants.cjs → @packages/pendidikan-operation/@package/constants.cjs} +0 -0
  233. /package/build/{constants.mjs → @packages/pendidikan-operation/@package/constants.mjs} +0 -0
  234. /package/build/{hooks → @packages/pendidikan-operation/@package/hooks}/hook.officePendidikan.cjs +0 -0
  235. /package/build/{hooks → @packages/pendidikan-operation/@package/hooks}/hook.officePendidikan.mjs +0 -0
  236. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/data/useImportData.cjs +0 -0
  237. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/data/useImportData.mjs +0 -0
  238. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/jadwal/useJadwal.cjs +0 -0
  239. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/jadwal/useJadwal.mjs +0 -0
  240. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/mediaScanter/useMediaScanter.cjs +0 -0
  241. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/mediaScanter/useMediaScanter.mjs +0 -0
  242. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/penilaian/usePenilaian.cjs +0 -0
  243. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/penilaian/usePenilaian.mjs +0 -0
  244. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useNotif.cjs +0 -0
  245. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useNotif.mjs +0 -0
  246. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useSync.cjs +0 -0
  247. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useSync.mjs +0 -0
  248. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useTelemetry.cjs +0 -0
  249. /package/build/{providers → @packages/pendidikan-operation/@package/providers}/useTelemetry.mjs +0 -0
  250. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.logger.cjs +0 -0
  251. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.logger.mjs +0 -0
  252. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.number.cjs +0 -0
  253. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.number.mjs +0 -0
  254. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.score.cjs +0 -0
  255. /package/build/{utils → @packages/pendidikan-operation/@package/utils}/util.score.mjs +0 -0
@@ -0,0 +1,77 @@
1
+ 'use strict';
2
+
3
+ const core = require('@neon.id/core');
4
+ const operation = require('@neon.id/operation');
5
+ const utils = require('@neon.id/utils');
6
+ const useAkademik = require('../../providers/akademik/useAkademik.cjs');
7
+ const query = require('@neon.id/query');
8
+ const deleteStudentProgram_schema = require('./deleteStudentProgram.schema.cjs');
9
+ const useTelemetry = require('../../providers/useTelemetry.cjs');
10
+
11
+ const deleteStudentProgram = operation.Action.define({
12
+ key: "deleteStudentProgram",
13
+ name: "Delete Student Program",
14
+ type: "command",
15
+ category: "domain",
16
+ execute: async (input, stream) => {
17
+ utils.guard(stream, "inputRequired");
18
+ const { validate } = operation.useValidation(stream, deleteStudentProgram_schema.DeleteStudentProgramSchema);
19
+ const data = validate(input);
20
+ const { getManyStudentProgram, deleteGerbangAccess } = useAkademik.useAkademik(stream);
21
+ return useTelemetry.useTelemetry(
22
+ stream,
23
+ "deleteStudentProgram",
24
+ {
25
+ userId: stream.context.identitas.userId,
26
+ data
27
+ },
28
+ async () => {
29
+ const dbs = stream.core.dbs;
30
+ const dbStudentProgram = dbs["neu-akademik"].models["neu:akademik:studentProgram"];
31
+ const { items: studentPrograms } = await getManyStudentProgram({
32
+ query: query.Query.define({
33
+ filter: { _id: { $in: [data.studentProgramId] } },
34
+ fields: {
35
+ id: 1,
36
+ virtualCourseCollection: {
37
+ id: 1,
38
+ neutronModules: { id: 1 }
39
+ },
40
+ student: { id: 1, userId: 1 }
41
+ }
42
+ })
43
+ });
44
+ const studentProgram = studentPrograms[0];
45
+ utils.guard(studentProgram, "studentProgramNotFound");
46
+ const userId = studentProgram.student?.userId;
47
+ const allModuleKeys = [
48
+ ...new Set(
49
+ (studentProgram.virtualCourseCollection ?? []).flatMap(
50
+ (vc) => (vc.neutronModules ?? []).map(
51
+ (m) => `neu:app:module:${m.id}`
52
+ )
53
+ )
54
+ )
55
+ ];
56
+ if (userId && allModuleKeys.length > 0) {
57
+ await deleteGerbangAccess({
58
+ givenTo: userId,
59
+ key: { $in: allModuleKeys }
60
+ });
61
+ }
62
+ await dbStudentProgram.findByIdAndUpdate(data.studentProgramId, {
63
+ $set: { deletedAt: /* @__PURE__ */ new Date() }
64
+ });
65
+ return core.Result.ok({
66
+ state: "studentProgramDeleted",
67
+ message: "Student program has been deleted.",
68
+ data: {
69
+ code: 1
70
+ }
71
+ });
72
+ }
73
+ );
74
+ }
75
+ });
76
+
77
+ exports.deleteStudentProgram = deleteStudentProgram;
@@ -0,0 +1,75 @@
1
+ import { Result } from '@neon.id/core';
2
+ import { Action, useValidation } from '@neon.id/operation';
3
+ import { guard } from '@neon.id/utils';
4
+ import { useAkademik } from '../../providers/akademik/useAkademik.mjs';
5
+ import { Query } from '@neon.id/query';
6
+ import { DeleteStudentProgramSchema } from './deleteStudentProgram.schema.mjs';
7
+ import { useTelemetry } from '../../providers/useTelemetry.mjs';
8
+
9
+ const deleteStudentProgram = Action.define({
10
+ key: "deleteStudentProgram",
11
+ name: "Delete Student Program",
12
+ type: "command",
13
+ category: "domain",
14
+ execute: async (input, stream) => {
15
+ guard(stream, "inputRequired");
16
+ const { validate } = useValidation(stream, DeleteStudentProgramSchema);
17
+ const data = validate(input);
18
+ const { getManyStudentProgram, deleteGerbangAccess } = useAkademik(stream);
19
+ return useTelemetry(
20
+ stream,
21
+ "deleteStudentProgram",
22
+ {
23
+ userId: stream.context.identitas.userId,
24
+ data
25
+ },
26
+ async () => {
27
+ const dbs = stream.core.dbs;
28
+ const dbStudentProgram = dbs["neu-akademik"].models["neu:akademik:studentProgram"];
29
+ const { items: studentPrograms } = await getManyStudentProgram({
30
+ query: Query.define({
31
+ filter: { _id: { $in: [data.studentProgramId] } },
32
+ fields: {
33
+ id: 1,
34
+ virtualCourseCollection: {
35
+ id: 1,
36
+ neutronModules: { id: 1 }
37
+ },
38
+ student: { id: 1, userId: 1 }
39
+ }
40
+ })
41
+ });
42
+ const studentProgram = studentPrograms[0];
43
+ guard(studentProgram, "studentProgramNotFound");
44
+ const userId = studentProgram.student?.userId;
45
+ const allModuleKeys = [
46
+ ...new Set(
47
+ (studentProgram.virtualCourseCollection ?? []).flatMap(
48
+ (vc) => (vc.neutronModules ?? []).map(
49
+ (m) => `neu:app:module:${m.id}`
50
+ )
51
+ )
52
+ )
53
+ ];
54
+ if (userId && allModuleKeys.length > 0) {
55
+ await deleteGerbangAccess({
56
+ givenTo: userId,
57
+ key: { $in: allModuleKeys }
58
+ });
59
+ }
60
+ await dbStudentProgram.findByIdAndUpdate(data.studentProgramId, {
61
+ $set: { deletedAt: /* @__PURE__ */ new Date() }
62
+ });
63
+ return Result.ok({
64
+ state: "studentProgramDeleted",
65
+ message: "Student program has been deleted.",
66
+ data: {
67
+ code: 1
68
+ }
69
+ });
70
+ }
71
+ );
72
+ }
73
+ });
74
+
75
+ export { deleteStudentProgram };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const z = require('@neon.id/z');
4
+
5
+ const DeleteStudentProgramSchema = z.z.object({
6
+ studentProgramId: z.z.objectId().explain({
7
+ label: "Student Program ID"
8
+ })
9
+ });
10
+
11
+ exports.DeleteStudentProgramSchema = DeleteStudentProgramSchema;
@@ -0,0 +1,9 @@
1
+ import { z } from '@neon.id/z';
2
+
3
+ const DeleteStudentProgramSchema = z.object({
4
+ studentProgramId: z.objectId().explain({
5
+ label: "Student Program ID"
6
+ })
7
+ });
8
+
9
+ export { DeleteStudentProgramSchema };
@@ -0,0 +1,171 @@
1
+ 'use strict';
2
+
3
+ const core = require('@neon.id/core');
4
+ const operation = require('@neon.id/operation');
5
+ const utils = require('@neon.id/utils');
6
+ const clientS3 = require('@aws-sdk/client-s3');
7
+ const s3RequestPresigner = require('@aws-sdk/s3-request-presigner');
8
+ const papaparse = require('../../../../../node_modules/papaparse/papaparse.cjs');
9
+ const query = require('@neon.id/query');
10
+ const akademikModels = require('@neutron.co.id/akademik-models');
11
+ const exportStudentProgram_schema = require('./exportStudentProgram.schema.cjs');
12
+ const useTelemetry = require('../../providers/useTelemetry.cjs');
13
+
14
+ const exportStudentProgram = operation.Action.define({
15
+ key: "exportStudentProgram",
16
+ name: "Export Program",
17
+ type: "command",
18
+ category: "domain",
19
+ execute: async (_input, stream) => {
20
+ utils.guard(stream, "streamRequired");
21
+ return useTelemetry.useTelemetry(
22
+ stream,
23
+ "exportStudentProgram",
24
+ {
25
+ userId: stream.context?.identitas?.userId
26
+ },
27
+ async () => {
28
+ const { validate } = operation.useValidation(stream, exportStudentProgram_schema.ExportStudentProgramSchema);
29
+ const { timing, time } = utils.useTiming();
30
+ const { s3, config } = useS3(stream);
31
+ const data = validate(_input);
32
+ const actions = stream.actions.data;
33
+ try {
34
+ const result = await actions.getMany.execute(
35
+ {
36
+ model: `neu:akademik:studentProgram`,
37
+ query: query.Query.define({
38
+ filter: {
39
+ // deletedAt: { $exists: false },
40
+ branchId: { $in: data.branchIds }
41
+ },
42
+ fields: akademikModels.StudentProgramModel.fragments.operation,
43
+ limit: 9999999
44
+ })
45
+ },
46
+ stream
47
+ );
48
+ console.log("mappedStudentProgram: ", result.value);
49
+ const formatGMT7 = (dateString) => {
50
+ if (!dateString)
51
+ return "";
52
+ const date = new Date(dateString);
53
+ if (Number.isNaN(date.getTime()))
54
+ return "";
55
+ const parts = new Intl.DateTimeFormat("en-GB", {
56
+ timeZone: "Asia/Jakarta",
57
+ day: "numeric",
58
+ month: "numeric",
59
+ year: "numeric",
60
+ hour: "2-digit",
61
+ minute: "2-digit",
62
+ hour12: false
63
+ }).formatToParts(date);
64
+ const values = Object.fromEntries(
65
+ parts.map((p) => [p.type, p.value])
66
+ );
67
+ return `${values.year}-${values.month}-${values.day} ${values.hour}:${values.minute}`;
68
+ };
69
+ const studentPrograms = result.value;
70
+ const mappedStudentProgram = studentPrograms.map((p) => {
71
+ return {
72
+ createdAt: formatGMT7(p.createdAt),
73
+ createdBy: p.creator?.name,
74
+ modifiedAt: formatGMT7(p.updatedAt),
75
+ modifiedBy: p.updater?.name,
76
+ program: p.program?.name,
77
+ student: p.student?.name,
78
+ stage: p.stage?.name,
79
+ levels: p.levels?.map((l) => l.name).join(", "),
80
+ branch: p.branch?.name,
81
+ classGroup: p.classGroup?.name,
82
+ paymentStatus: p.paymentStatus,
83
+ givenAt: formatGMT7(p.givenAt),
84
+ startedAt: formatGMT7(p.startedAt),
85
+ endedAt: formatGMT7(p.endedAt),
86
+ virtualCourseCollection: p.virtualCourseCollection?.map((v) => v.name).join(", "),
87
+ status: p.courseStatus
88
+ };
89
+ });
90
+ const rows = mappedStudentProgram.map((p) => ({
91
+ "Dibuat Pada": p.createdAt,
92
+ "Dibuat Oleh": p.createdBy,
93
+ "Diubah Pada": p.modifiedAt,
94
+ "Diubah Oleh": p.modifiedBy,
95
+ "Program": p.program,
96
+ "Siswa": p.student,
97
+ "Jenjang Studi": p.stage,
98
+ "Tingkat Studi": p.levels,
99
+ "Cabang": p.branch,
100
+ "Kelompok Belajar": p.classGroup,
101
+ "Status Pembayaran": p.paymentStatus,
102
+ "Dimulai Pada": p.startedAt,
103
+ "Berakhir Pada": p.endedAt,
104
+ "Koleksi Materi": p.virtualCourseCollection,
105
+ "Diberikan Pada": p.givenAt,
106
+ "Status Video Pembelajaran": p.status
107
+ }));
108
+ const csv = papaparse.papaparseExports.unparse(rows, {
109
+ delimiter: ";"
110
+ });
111
+ const key = `exports/student-program/student-program-export.csv`;
112
+ await time("saveCsv", () => s3.send(
113
+ new clientS3.PutObjectCommand({
114
+ Bucket: config.bucket,
115
+ Key: key,
116
+ Body: csv,
117
+ ContentType: "text/csv",
118
+ ContentEncoding: "utf-8",
119
+ ACL: "public-read"
120
+ })
121
+ ));
122
+ const url = await s3RequestPresigner.getSignedUrl(
123
+ s3,
124
+ new clientS3.GetObjectCommand({
125
+ Bucket: config.bucket,
126
+ Key: key,
127
+ ResponseContentDisposition: 'attachment; filename="program-export.csv"',
128
+ ResponseContentType: "text/csv"
129
+ }),
130
+ { expiresIn: 3600 }
131
+ );
132
+ return core.Result.ok({
133
+ state: "exportStudentProgram",
134
+ message: "Export Program has been sucessfully executed. CSV has been processed on background.",
135
+ meta: { timing: timing() },
136
+ data: {
137
+ total: mappedStudentProgram.length,
138
+ url
139
+ }
140
+ });
141
+ } catch (error) {
142
+ if (error?.isFailure)
143
+ throw error;
144
+ console.error(error);
145
+ return core.Result.fail({
146
+ state: `exportStudentProgramFailed`,
147
+ message: `Failed to set export Program.`,
148
+ meta: { timing: timing() },
149
+ error: error?.toString()
150
+ });
151
+ }
152
+ }
153
+ );
154
+ }
155
+ });
156
+ function useS3(stream) {
157
+ utils.guard(stream, "streamRequired");
158
+ const config = stream.context.config.s3;
159
+ utils.guard(config, "s3ConfigRequired");
160
+ const s3 = new clientS3.S3Client({
161
+ region: "us-east-1",
162
+ endpoint: config?.url,
163
+ credentials: {
164
+ accessKeyId: config?.key,
165
+ secretAccessKey: config?.secret
166
+ }
167
+ });
168
+ return { s3, config };
169
+ }
170
+
171
+ exports.exportStudentProgram = exportStudentProgram;
@@ -0,0 +1,169 @@
1
+ import { Result } from '@neon.id/core';
2
+ import { Action, useValidation } from '@neon.id/operation';
3
+ import { guard, useTiming } from '@neon.id/utils';
4
+ import { PutObjectCommand, GetObjectCommand, S3Client } from '@aws-sdk/client-s3';
5
+ import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
6
+ import { p as papaparseExports } from '../../../../../node_modules/papaparse/papaparse.mjs';
7
+ import { Query } from '@neon.id/query';
8
+ import { StudentProgramModel } from '@neutron.co.id/akademik-models';
9
+ import { ExportStudentProgramSchema } from './exportStudentProgram.schema.mjs';
10
+ import { useTelemetry } from '../../providers/useTelemetry.mjs';
11
+
12
+ const exportStudentProgram = Action.define({
13
+ key: "exportStudentProgram",
14
+ name: "Export Program",
15
+ type: "command",
16
+ category: "domain",
17
+ execute: async (_input, stream) => {
18
+ guard(stream, "streamRequired");
19
+ return useTelemetry(
20
+ stream,
21
+ "exportStudentProgram",
22
+ {
23
+ userId: stream.context?.identitas?.userId
24
+ },
25
+ async () => {
26
+ const { validate } = useValidation(stream, ExportStudentProgramSchema);
27
+ const { timing, time } = useTiming();
28
+ const { s3, config } = useS3(stream);
29
+ const data = validate(_input);
30
+ const actions = stream.actions.data;
31
+ try {
32
+ const result = await actions.getMany.execute(
33
+ {
34
+ model: `neu:akademik:studentProgram`,
35
+ query: Query.define({
36
+ filter: {
37
+ // deletedAt: { $exists: false },
38
+ branchId: { $in: data.branchIds }
39
+ },
40
+ fields: StudentProgramModel.fragments.operation,
41
+ limit: 9999999
42
+ })
43
+ },
44
+ stream
45
+ );
46
+ console.log("mappedStudentProgram: ", result.value);
47
+ const formatGMT7 = (dateString) => {
48
+ if (!dateString)
49
+ return "";
50
+ const date = new Date(dateString);
51
+ if (Number.isNaN(date.getTime()))
52
+ return "";
53
+ const parts = new Intl.DateTimeFormat("en-GB", {
54
+ timeZone: "Asia/Jakarta",
55
+ day: "numeric",
56
+ month: "numeric",
57
+ year: "numeric",
58
+ hour: "2-digit",
59
+ minute: "2-digit",
60
+ hour12: false
61
+ }).formatToParts(date);
62
+ const values = Object.fromEntries(
63
+ parts.map((p) => [p.type, p.value])
64
+ );
65
+ return `${values.year}-${values.month}-${values.day} ${values.hour}:${values.minute}`;
66
+ };
67
+ const studentPrograms = result.value;
68
+ const mappedStudentProgram = studentPrograms.map((p) => {
69
+ return {
70
+ createdAt: formatGMT7(p.createdAt),
71
+ createdBy: p.creator?.name,
72
+ modifiedAt: formatGMT7(p.updatedAt),
73
+ modifiedBy: p.updater?.name,
74
+ program: p.program?.name,
75
+ student: p.student?.name,
76
+ stage: p.stage?.name,
77
+ levels: p.levels?.map((l) => l.name).join(", "),
78
+ branch: p.branch?.name,
79
+ classGroup: p.classGroup?.name,
80
+ paymentStatus: p.paymentStatus,
81
+ givenAt: formatGMT7(p.givenAt),
82
+ startedAt: formatGMT7(p.startedAt),
83
+ endedAt: formatGMT7(p.endedAt),
84
+ virtualCourseCollection: p.virtualCourseCollection?.map((v) => v.name).join(", "),
85
+ status: p.courseStatus
86
+ };
87
+ });
88
+ const rows = mappedStudentProgram.map((p) => ({
89
+ "Dibuat Pada": p.createdAt,
90
+ "Dibuat Oleh": p.createdBy,
91
+ "Diubah Pada": p.modifiedAt,
92
+ "Diubah Oleh": p.modifiedBy,
93
+ "Program": p.program,
94
+ "Siswa": p.student,
95
+ "Jenjang Studi": p.stage,
96
+ "Tingkat Studi": p.levels,
97
+ "Cabang": p.branch,
98
+ "Kelompok Belajar": p.classGroup,
99
+ "Status Pembayaran": p.paymentStatus,
100
+ "Dimulai Pada": p.startedAt,
101
+ "Berakhir Pada": p.endedAt,
102
+ "Koleksi Materi": p.virtualCourseCollection,
103
+ "Diberikan Pada": p.givenAt,
104
+ "Status Video Pembelajaran": p.status
105
+ }));
106
+ const csv = papaparseExports.unparse(rows, {
107
+ delimiter: ";"
108
+ });
109
+ const key = `exports/student-program/student-program-export.csv`;
110
+ await time("saveCsv", () => s3.send(
111
+ new PutObjectCommand({
112
+ Bucket: config.bucket,
113
+ Key: key,
114
+ Body: csv,
115
+ ContentType: "text/csv",
116
+ ContentEncoding: "utf-8",
117
+ ACL: "public-read"
118
+ })
119
+ ));
120
+ const url = await getSignedUrl(
121
+ s3,
122
+ new GetObjectCommand({
123
+ Bucket: config.bucket,
124
+ Key: key,
125
+ ResponseContentDisposition: 'attachment; filename="program-export.csv"',
126
+ ResponseContentType: "text/csv"
127
+ }),
128
+ { expiresIn: 3600 }
129
+ );
130
+ return Result.ok({
131
+ state: "exportStudentProgram",
132
+ message: "Export Program has been sucessfully executed. CSV has been processed on background.",
133
+ meta: { timing: timing() },
134
+ data: {
135
+ total: mappedStudentProgram.length,
136
+ url
137
+ }
138
+ });
139
+ } catch (error) {
140
+ if (error?.isFailure)
141
+ throw error;
142
+ console.error(error);
143
+ return Result.fail({
144
+ state: `exportStudentProgramFailed`,
145
+ message: `Failed to set export Program.`,
146
+ meta: { timing: timing() },
147
+ error: error?.toString()
148
+ });
149
+ }
150
+ }
151
+ );
152
+ }
153
+ });
154
+ function useS3(stream) {
155
+ guard(stream, "streamRequired");
156
+ const config = stream.context.config.s3;
157
+ guard(config, "s3ConfigRequired");
158
+ const s3 = new S3Client({
159
+ region: "us-east-1",
160
+ endpoint: config?.url,
161
+ credentials: {
162
+ accessKeyId: config?.key,
163
+ secretAccessKey: config?.secret
164
+ }
165
+ });
166
+ return { s3, config };
167
+ }
168
+
169
+ export { exportStudentProgram };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const z = require('@neon.id/z');
4
+
5
+ const ExportStudentProgramSchema = z.z.object({
6
+ branchIds: z.z.array(z.z.string()).optional().explain({
7
+ label: "Branch IDs"
8
+ })
9
+ });
10
+
11
+ exports.ExportStudentProgramSchema = ExportStudentProgramSchema;
@@ -0,0 +1,9 @@
1
+ import { z } from '@neon.id/z';
2
+
3
+ const ExportStudentProgramSchema = z.object({
4
+ branchIds: z.array(z.string()).optional().explain({
5
+ label: "Branch IDs"
6
+ })
7
+ });
8
+
9
+ export { ExportStudentProgramSchema };