@neutron.co.id/pendidikan-operation 1.27.23 → 1.27.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/actions/akademik/index.d.ts +1 -0
- package/build/actions/akademik/sendPointNotification/index.d.ts +2 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.action.cjs +144 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.action.d.ts +8 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.action.mjs +142 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.schema.cjs +12 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.schema.d.ts +24 -0
- package/build/actions/akademik/sendPointNotification/sendPointNotification.schema.mjs +10 -0
- package/build/actions/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.action.cjs +2 -2
- package/build/actions/jadwal/sendClassConsultationNotification/sendClassConsultationNotification.action.mjs +2 -2
- package/build/actions/penilaian/sendScoreNotification/sendScoreNotification.action.cjs +4 -4
- package/build/actions/penilaian/sendScoreNotification/sendScoreNotification.action.mjs +4 -4
- package/build/actions/tanya/action.sendAnswer.cjs +2 -2
- package/build/actions/tanya/action.sendAnswer.mjs +2 -2
- package/build/index.cjs +5 -0
- package/build/index.d.ts +6 -0
- package/build/index.mjs +4 -1
- package/package.json +2 -2
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const operation = require('@neon.id/operation');
|
|
4
|
+
const ofetch = require('ofetch');
|
|
5
|
+
const core = require('@neon.id/core');
|
|
6
|
+
const query = require('@neon.id/query');
|
|
7
|
+
const utils = require('@neon.id/utils');
|
|
8
|
+
const sendPointNotification_schema = require('./sendPointNotification.schema.cjs');
|
|
9
|
+
|
|
10
|
+
const sendPointNotification = operation.Action.define({
|
|
11
|
+
key: "sendPointNotification",
|
|
12
|
+
name: "Send Score Notification",
|
|
13
|
+
type: "command",
|
|
14
|
+
category: "domain",
|
|
15
|
+
execute: async (input, stream) => {
|
|
16
|
+
utils.guard(stream, "streamRequired");
|
|
17
|
+
const config = stream?.context?.config;
|
|
18
|
+
const { validate } = operation.useValidation(stream, sendPointNotification_schema.SendPointNotificationSchema);
|
|
19
|
+
const data = validate(input);
|
|
20
|
+
if (!config?.novuApi?.url || !config?.novuApi?.token) {
|
|
21
|
+
console.warn("Novu API not configured, skipping notification");
|
|
22
|
+
return core.Result.ok({
|
|
23
|
+
state: "emailsSent",
|
|
24
|
+
message: "Novu not configured",
|
|
25
|
+
data: {
|
|
26
|
+
sentCount: 0,
|
|
27
|
+
transactionIds: []
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const student = await _getOneStudent(stream, data.studentId);
|
|
33
|
+
try {
|
|
34
|
+
await ofetch.ofetch(`${config.novuApi.url}/v1/events/trigger`, {
|
|
35
|
+
method: "POST",
|
|
36
|
+
headers: {
|
|
37
|
+
"Authorization": `ApiKey ${config.novuApi.token}`,
|
|
38
|
+
"Content-Type": "application/json"
|
|
39
|
+
},
|
|
40
|
+
body: JSON.stringify({
|
|
41
|
+
name: "get-point",
|
|
42
|
+
to: {
|
|
43
|
+
subscriberId: student.userId
|
|
44
|
+
},
|
|
45
|
+
payload: {
|
|
46
|
+
point: data?.point
|
|
47
|
+
},
|
|
48
|
+
overrides: {
|
|
49
|
+
fcm: {
|
|
50
|
+
data: {
|
|
51
|
+
userId: String(student.userId),
|
|
52
|
+
moduleType: "get-point",
|
|
53
|
+
moduleId: String(data?.moduleId)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
await stream?.actions.data.createOne.execute({
|
|
60
|
+
model: "neu:data:notification",
|
|
61
|
+
data: {
|
|
62
|
+
userId: student.userId,
|
|
63
|
+
moduleType: "get-point",
|
|
64
|
+
moduleId: data?.moduleId,
|
|
65
|
+
messageData: {
|
|
66
|
+
id: data?.moduleId,
|
|
67
|
+
message: `Kamu baru saja menerima transfer sebesar ${data?.point} poin. Cek transaksinya disini ya!`
|
|
68
|
+
},
|
|
69
|
+
url: `${config?.appFluffyUrl}/transaksi`
|
|
70
|
+
}
|
|
71
|
+
}, stream);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.error(`Failed to send score notification to student ${student.userId}:`, error);
|
|
74
|
+
}
|
|
75
|
+
return core.Result.ok({
|
|
76
|
+
state: "notificationSent",
|
|
77
|
+
message: `Sent successfully`,
|
|
78
|
+
data: {
|
|
79
|
+
point: data?.point,
|
|
80
|
+
userId: student.userId
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
} catch (error) {
|
|
84
|
+
console.error("Failed to send score notifications:", error);
|
|
85
|
+
return core.Result.ok({
|
|
86
|
+
state: "emailsSent",
|
|
87
|
+
message: "Failed to send notifications",
|
|
88
|
+
data: { sentCount: 0, transactionIds: [] }
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
async function _getOneStudent(stream, userId) {
|
|
94
|
+
const result = await stream.actions.data.getMany.execute(
|
|
95
|
+
{
|
|
96
|
+
model: "neu:akademik:student",
|
|
97
|
+
query: query.Query.define({
|
|
98
|
+
filter: {
|
|
99
|
+
userId
|
|
100
|
+
},
|
|
101
|
+
fields: {
|
|
102
|
+
id: 1,
|
|
103
|
+
flag: 1,
|
|
104
|
+
display: 1,
|
|
105
|
+
name: 1,
|
|
106
|
+
birthDate: 1,
|
|
107
|
+
age: 1,
|
|
108
|
+
stageId: 1,
|
|
109
|
+
levelIds: 1,
|
|
110
|
+
branchIds: 1,
|
|
111
|
+
seniorSchoolIds: 1,
|
|
112
|
+
stage: { id: 1, name: 1 },
|
|
113
|
+
levels: { id: 1, name: 1 },
|
|
114
|
+
branches: { id: 1, name: 1 },
|
|
115
|
+
user: {
|
|
116
|
+
roles: {
|
|
117
|
+
name: 1,
|
|
118
|
+
handle: 1
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
seniorSchools: { id: 1, name: 1 },
|
|
122
|
+
classGroups: {
|
|
123
|
+
id: 1,
|
|
124
|
+
name: 1
|
|
125
|
+
},
|
|
126
|
+
nis: 1,
|
|
127
|
+
nis2: 1,
|
|
128
|
+
phoneSms: 1,
|
|
129
|
+
phone: 1,
|
|
130
|
+
whatsapp: 1,
|
|
131
|
+
email: 1,
|
|
132
|
+
note: 1,
|
|
133
|
+
point: 1
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
},
|
|
137
|
+
stream
|
|
138
|
+
);
|
|
139
|
+
if (result.isFailure)
|
|
140
|
+
throw result;
|
|
141
|
+
return result.value[0];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
exports.sendPointNotification = sendPointNotification;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Action } from '@neon.id/operation';
|
|
2
|
+
import { type SendPointNotificationMeta, type SendPointNotificationOutput } from './sendPointNotification.schema';
|
|
3
|
+
export declare const sendPointNotification: Action<"sendPointNotification", {
|
|
4
|
+
point: number;
|
|
5
|
+
studentId: string;
|
|
6
|
+
moduleId: string;
|
|
7
|
+
moduleType: string;
|
|
8
|
+
}, SendPointNotificationOutput, SendPointNotificationMeta>;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Action, useValidation } from '@neon.id/operation';
|
|
2
|
+
import { ofetch } from 'ofetch';
|
|
3
|
+
import { Result } from '@neon.id/core';
|
|
4
|
+
import { Query } from '@neon.id/query';
|
|
5
|
+
import { guard } from '@neon.id/utils';
|
|
6
|
+
import { SendPointNotificationSchema } from './sendPointNotification.schema.mjs';
|
|
7
|
+
|
|
8
|
+
const sendPointNotification = Action.define({
|
|
9
|
+
key: "sendPointNotification",
|
|
10
|
+
name: "Send Score Notification",
|
|
11
|
+
type: "command",
|
|
12
|
+
category: "domain",
|
|
13
|
+
execute: async (input, stream) => {
|
|
14
|
+
guard(stream, "streamRequired");
|
|
15
|
+
const config = stream?.context?.config;
|
|
16
|
+
const { validate } = useValidation(stream, SendPointNotificationSchema);
|
|
17
|
+
const data = validate(input);
|
|
18
|
+
if (!config?.novuApi?.url || !config?.novuApi?.token) {
|
|
19
|
+
console.warn("Novu API not configured, skipping notification");
|
|
20
|
+
return Result.ok({
|
|
21
|
+
state: "emailsSent",
|
|
22
|
+
message: "Novu not configured",
|
|
23
|
+
data: {
|
|
24
|
+
sentCount: 0,
|
|
25
|
+
transactionIds: []
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const student = await _getOneStudent(stream, data.studentId);
|
|
31
|
+
try {
|
|
32
|
+
await ofetch(`${config.novuApi.url}/v1/events/trigger`, {
|
|
33
|
+
method: "POST",
|
|
34
|
+
headers: {
|
|
35
|
+
"Authorization": `ApiKey ${config.novuApi.token}`,
|
|
36
|
+
"Content-Type": "application/json"
|
|
37
|
+
},
|
|
38
|
+
body: JSON.stringify({
|
|
39
|
+
name: "get-point",
|
|
40
|
+
to: {
|
|
41
|
+
subscriberId: student.userId
|
|
42
|
+
},
|
|
43
|
+
payload: {
|
|
44
|
+
point: data?.point
|
|
45
|
+
},
|
|
46
|
+
overrides: {
|
|
47
|
+
fcm: {
|
|
48
|
+
data: {
|
|
49
|
+
userId: String(student.userId),
|
|
50
|
+
moduleType: "get-point",
|
|
51
|
+
moduleId: String(data?.moduleId)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
await stream?.actions.data.createOne.execute({
|
|
58
|
+
model: "neu:data:notification",
|
|
59
|
+
data: {
|
|
60
|
+
userId: student.userId,
|
|
61
|
+
moduleType: "get-point",
|
|
62
|
+
moduleId: data?.moduleId,
|
|
63
|
+
messageData: {
|
|
64
|
+
id: data?.moduleId,
|
|
65
|
+
message: `Kamu baru saja menerima transfer sebesar ${data?.point} poin. Cek transaksinya disini ya!`
|
|
66
|
+
},
|
|
67
|
+
url: `${config?.appFluffyUrl}/transaksi`
|
|
68
|
+
}
|
|
69
|
+
}, stream);
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error(`Failed to send score notification to student ${student.userId}:`, error);
|
|
72
|
+
}
|
|
73
|
+
return Result.ok({
|
|
74
|
+
state: "notificationSent",
|
|
75
|
+
message: `Sent successfully`,
|
|
76
|
+
data: {
|
|
77
|
+
point: data?.point,
|
|
78
|
+
userId: student.userId
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.error("Failed to send score notifications:", error);
|
|
83
|
+
return Result.ok({
|
|
84
|
+
state: "emailsSent",
|
|
85
|
+
message: "Failed to send notifications",
|
|
86
|
+
data: { sentCount: 0, transactionIds: [] }
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
async function _getOneStudent(stream, userId) {
|
|
92
|
+
const result = await stream.actions.data.getMany.execute(
|
|
93
|
+
{
|
|
94
|
+
model: "neu:akademik:student",
|
|
95
|
+
query: Query.define({
|
|
96
|
+
filter: {
|
|
97
|
+
userId
|
|
98
|
+
},
|
|
99
|
+
fields: {
|
|
100
|
+
id: 1,
|
|
101
|
+
flag: 1,
|
|
102
|
+
display: 1,
|
|
103
|
+
name: 1,
|
|
104
|
+
birthDate: 1,
|
|
105
|
+
age: 1,
|
|
106
|
+
stageId: 1,
|
|
107
|
+
levelIds: 1,
|
|
108
|
+
branchIds: 1,
|
|
109
|
+
seniorSchoolIds: 1,
|
|
110
|
+
stage: { id: 1, name: 1 },
|
|
111
|
+
levels: { id: 1, name: 1 },
|
|
112
|
+
branches: { id: 1, name: 1 },
|
|
113
|
+
user: {
|
|
114
|
+
roles: {
|
|
115
|
+
name: 1,
|
|
116
|
+
handle: 1
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
seniorSchools: { id: 1, name: 1 },
|
|
120
|
+
classGroups: {
|
|
121
|
+
id: 1,
|
|
122
|
+
name: 1
|
|
123
|
+
},
|
|
124
|
+
nis: 1,
|
|
125
|
+
nis2: 1,
|
|
126
|
+
phoneSms: 1,
|
|
127
|
+
phone: 1,
|
|
128
|
+
whatsapp: 1,
|
|
129
|
+
email: 1,
|
|
130
|
+
note: 1,
|
|
131
|
+
point: 1
|
|
132
|
+
}
|
|
133
|
+
})
|
|
134
|
+
},
|
|
135
|
+
stream
|
|
136
|
+
);
|
|
137
|
+
if (result.isFailure)
|
|
138
|
+
throw result;
|
|
139
|
+
return result.value[0];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export { sendPointNotification };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const z = require('@neon.id/z');
|
|
4
|
+
|
|
5
|
+
const SendPointNotificationSchema = z.z.object({
|
|
6
|
+
studentId: z.z.objectId().explain({ label: "Student ID" }),
|
|
7
|
+
moduleId: z.z.string().explain({ label: "Module ID" }),
|
|
8
|
+
moduleType: z.z.string().explain({ label: "Module Type" }),
|
|
9
|
+
point: z.z.number().explain({ label: "Point Get" })
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports.SendPointNotificationSchema = SendPointNotificationSchema;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from '@neon.id/z';
|
|
2
|
+
export declare const SendPointNotificationSchema: z.ZodObject<{
|
|
3
|
+
studentId: z.ZodEffects<z.ZodString, string, string>;
|
|
4
|
+
moduleId: z.ZodString;
|
|
5
|
+
moduleType: z.ZodString;
|
|
6
|
+
point: z.ZodNumber;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
point: number;
|
|
9
|
+
studentId: string;
|
|
10
|
+
moduleId: string;
|
|
11
|
+
moduleType: string;
|
|
12
|
+
}, {
|
|
13
|
+
point: number;
|
|
14
|
+
studentId: string;
|
|
15
|
+
moduleId: string;
|
|
16
|
+
moduleType: string;
|
|
17
|
+
}>;
|
|
18
|
+
export type SendPointNotificationInput = z.parse<typeof SendPointNotificationSchema>;
|
|
19
|
+
export interface SendPointNotificationOutput {
|
|
20
|
+
}
|
|
21
|
+
export interface SendPointNotificationMeta {
|
|
22
|
+
input: SendPointNotificationInput;
|
|
23
|
+
output: SendPointNotificationOutput;
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from '@neon.id/z';
|
|
2
|
+
|
|
3
|
+
const SendPointNotificationSchema = z.object({
|
|
4
|
+
studentId: z.objectId().explain({ label: "Student ID" }),
|
|
5
|
+
moduleId: z.string().explain({ label: "Module ID" }),
|
|
6
|
+
moduleType: z.string().explain({ label: "Module Type" }),
|
|
7
|
+
point: z.number().explain({ label: "Point Get" })
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { SendPointNotificationSchema };
|
|
@@ -85,9 +85,9 @@ const sendClassConsultationNotification = operation.Action.define({
|
|
|
85
85
|
overrides: {
|
|
86
86
|
fcm: {
|
|
87
87
|
data: {
|
|
88
|
-
userId: student.userId,
|
|
88
|
+
userId: String(student.userId),
|
|
89
89
|
moduleType: "classConsultation-created",
|
|
90
|
-
moduleId: input?.classConsultationId,
|
|
90
|
+
moduleId: String(input?.classConsultationId),
|
|
91
91
|
url: `${config?.appFluffyUrl}/jadwal/consultation/${input?.classConsultationId}`
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -83,9 +83,9 @@ const sendClassConsultationNotification = Action.define({
|
|
|
83
83
|
overrides: {
|
|
84
84
|
fcm: {
|
|
85
85
|
data: {
|
|
86
|
-
userId: student.userId,
|
|
86
|
+
userId: String(student.userId),
|
|
87
87
|
moduleType: "classConsultation-created",
|
|
88
|
-
moduleId: input?.classConsultationId,
|
|
88
|
+
moduleId: String(input?.classConsultationId),
|
|
89
89
|
url: `${config?.appFluffyUrl}/jadwal/consultation/${input?.classConsultationId}`
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -122,9 +122,9 @@ const sendScoreNotification = operation.Action.define({
|
|
|
122
122
|
overrides: {
|
|
123
123
|
fcm: {
|
|
124
124
|
data: {
|
|
125
|
-
userId: gradingData.student.userId,
|
|
125
|
+
userId: String(gradingData.student.userId),
|
|
126
126
|
moduleType: "score-published",
|
|
127
|
-
moduleId: input?.gradingId,
|
|
127
|
+
moduleId: String(input?.gradingId),
|
|
128
128
|
url: `${config?.appFluffyUrl}/rapor/grading-${input?.gradingId}`
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -183,9 +183,9 @@ const sendScoreNotification = operation.Action.define({
|
|
|
183
183
|
overrides: {
|
|
184
184
|
fcm: {
|
|
185
185
|
data: {
|
|
186
|
-
userId: gradingData.student.userId,
|
|
186
|
+
userId: String(gradingData.student.userId),
|
|
187
187
|
moduleType: "score-published-parent",
|
|
188
|
-
moduleId: input?.gradingId,
|
|
188
|
+
moduleId: String(input?.gradingId),
|
|
189
189
|
url: `${config?.appFluffyUrl}/rapor/grading-${input?.gradingId}`
|
|
190
190
|
}
|
|
191
191
|
}
|
|
@@ -120,9 +120,9 @@ const sendScoreNotification = Action.define({
|
|
|
120
120
|
overrides: {
|
|
121
121
|
fcm: {
|
|
122
122
|
data: {
|
|
123
|
-
userId: gradingData.student.userId,
|
|
123
|
+
userId: String(gradingData.student.userId),
|
|
124
124
|
moduleType: "score-published",
|
|
125
|
-
moduleId: input?.gradingId,
|
|
125
|
+
moduleId: String(input?.gradingId),
|
|
126
126
|
url: `${config?.appFluffyUrl}/rapor/grading-${input?.gradingId}`
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -181,9 +181,9 @@ const sendScoreNotification = Action.define({
|
|
|
181
181
|
overrides: {
|
|
182
182
|
fcm: {
|
|
183
183
|
data: {
|
|
184
|
-
userId: gradingData.student.userId,
|
|
184
|
+
userId: String(gradingData.student.userId),
|
|
185
185
|
moduleType: "score-published-parent",
|
|
186
|
-
moduleId: input?.gradingId,
|
|
186
|
+
moduleId: String(input?.gradingId),
|
|
187
187
|
url: `${config?.appFluffyUrl}/rapor/grading-${input?.gradingId}`
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -106,9 +106,9 @@ const sendAnswer = operation.Action.define({
|
|
|
106
106
|
overrides: {
|
|
107
107
|
fcm: {
|
|
108
108
|
data: {
|
|
109
|
-
userId: student.userId || identifier.userId,
|
|
109
|
+
userId: String(student.userId || identifier.userId),
|
|
110
110
|
moduleType: "question-answered",
|
|
111
|
-
moduleId: input.questionId,
|
|
111
|
+
moduleId: String(input.questionId),
|
|
112
112
|
url: `${config?.appFluffyUrl}/tanya/${input.questionId}`
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -104,9 +104,9 @@ const sendAnswer = Action.define({
|
|
|
104
104
|
overrides: {
|
|
105
105
|
fcm: {
|
|
106
106
|
data: {
|
|
107
|
-
userId: student.userId || identifier.userId,
|
|
107
|
+
userId: String(student.userId || identifier.userId),
|
|
108
108
|
moduleType: "question-answered",
|
|
109
|
-
moduleId: input.questionId,
|
|
109
|
+
moduleId: String(input.questionId),
|
|
110
110
|
url: `${config?.appFluffyUrl}/tanya/${input.questionId}`
|
|
111
111
|
}
|
|
112
112
|
}
|
package/build/index.cjs
CHANGED
|
@@ -16,6 +16,7 @@ const action_getTeacherPoint = require('./actions/akademik/action.getTeacherPoin
|
|
|
16
16
|
const action_getStaffPoint = require('./actions/akademik/action.getStaffPoint.cjs');
|
|
17
17
|
const replaceModuleAccess_action = require('./actions/replaceModuleAccess/replaceModuleAccess.action.cjs');
|
|
18
18
|
const refreshModuleAccess_action = require('./actions/refreshModuleAccess/refreshModuleAccess.action.cjs');
|
|
19
|
+
const sendPointNotification_action = require('./actions/akademik/sendPointNotification/sendPointNotification.action.cjs');
|
|
19
20
|
const action_allConflict = require('./actions/jadwal/action.allConflict.cjs');
|
|
20
21
|
const action_classSessionInventoryOccurs = require('./actions/jadwal/action.classSessionInventoryOccurs.cjs');
|
|
21
22
|
const action_classSessionInventoryPreparation = require('./actions/jadwal/action.classSessionInventoryPreparation.cjs');
|
|
@@ -64,6 +65,7 @@ const action_createGradingAndScores = require('./actions/rasionalisasi/action.cr
|
|
|
64
65
|
const action_updateGradingAndScores = require('./actions/rasionalisasi/action.updateGradingAndScores.cjs');
|
|
65
66
|
const syncStudentReport_schema = require('./actions/akademik/studentReport/syncStudentReport.schema.cjs');
|
|
66
67
|
const updateReportStudent_schema = require('./actions/akademik/updateReportStudent/updateReportStudent.schema.cjs');
|
|
68
|
+
const sendPointNotification_schema = require('./actions/akademik/sendPointNotification/sendPointNotification.schema.cjs');
|
|
67
69
|
const getClassSessionConflicts_schema = require('./actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.cjs');
|
|
68
70
|
const syncClassSessions_schema = require('./actions/jadwal/syncClassSessions/syncClassSessions.schema.cjs');
|
|
69
71
|
const setAksesModulSiswaDiClassGroup_schema = require('./actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.cjs');
|
|
@@ -105,6 +107,7 @@ const actions = {
|
|
|
105
107
|
replaceModuleAccess: replaceModuleAccess_action.replaceModuleAccess,
|
|
106
108
|
refreshModuleAccess: refreshModuleAccess_action.refreshModuleAccess,
|
|
107
109
|
replaceModuleAccessManyStudent: replaceModuleAccessManyStudent_action.replaceModuleAccessManyStudent,
|
|
110
|
+
sendPointNotification: sendPointNotification_action.sendPointNotification,
|
|
108
111
|
// Jadwal
|
|
109
112
|
allConflict: action_allConflict.allConflict,
|
|
110
113
|
classSessionInventoryOccurs: action_classSessionInventoryOccurs.classSessionInventoryOccurs,
|
|
@@ -174,6 +177,7 @@ exports.getTeacherPoint = action_getTeacherPoint.getTeacherPoint;
|
|
|
174
177
|
exports.getStaffPoint = action_getStaffPoint.getStaffPoint;
|
|
175
178
|
exports.replaceModuleAccess = replaceModuleAccess_action.replaceModuleAccess;
|
|
176
179
|
exports.refreshModuleAccess = refreshModuleAccess_action.refreshModuleAccess;
|
|
180
|
+
exports.sendPointNotification = sendPointNotification_action.sendPointNotification;
|
|
177
181
|
exports.allConflict = action_allConflict.allConflict;
|
|
178
182
|
exports.classSessionInventoryOccurs = action_classSessionInventoryOccurs.classSessionInventoryOccurs;
|
|
179
183
|
exports.classSessionInventoryPreparation = action_classSessionInventoryPreparation.classSessionInventoryPreparation;
|
|
@@ -224,6 +228,7 @@ exports.createGradingAndScores = action_createGradingAndScores.createGradingAndS
|
|
|
224
228
|
exports.updateGradingAndScores = action_updateGradingAndScores.updateGradingAndScores;
|
|
225
229
|
exports.StudentReportSchema = syncStudentReport_schema.StudentReportSchema;
|
|
226
230
|
exports.UpdateReportStudentSchema = updateReportStudent_schema.UpdateReportStudentSchema;
|
|
231
|
+
exports.SendPointNotificationSchema = sendPointNotification_schema.SendPointNotificationSchema;
|
|
227
232
|
exports.GetClassSessionConflictsSchema = getClassSessionConflicts_schema.GetClassSessionConflictsSchema;
|
|
228
233
|
exports.SyncClassSessionsSchema = syncClassSessions_schema.SyncClassSessionsSchema;
|
|
229
234
|
exports.SetAksesModulSiswaDiClassGroupSchema = setAksesModulSiswaDiClassGroup_schema.SetAksesModulSiswaDiClassGroupSchema;
|
package/build/index.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export declare const actions: {
|
|
|
48
48
|
studentIds?: string[] | undefined;
|
|
49
49
|
staffId?: string | undefined;
|
|
50
50
|
}, import("./actions").ReplaceModuleAccessManyStudentOutput, import("./actions").ReplaceModuleAccessManyStudentMeta>;
|
|
51
|
+
sendPointNotification: import("@neon.id/operation").Action<"sendPointNotification", {
|
|
52
|
+
point: number;
|
|
53
|
+
studentId: string;
|
|
54
|
+
moduleId: string;
|
|
55
|
+
moduleType: string;
|
|
56
|
+
}, import("./actions").SendPointNotificationOutput, import("./actions").SendPointNotificationMeta>;
|
|
51
57
|
allConflict: import("@neon.id/operation").Action<"allConflict", import("./actions").AllConflictInput, import("./actions").AllConflictOutput, import("./actions").AllConflictMeta>;
|
|
52
58
|
classSessionInventoryOccurs: import("@neon.id/operation").Action<"classSessionInventoryOccurs", import("./actions").ClassSessionInventoryOccursInput, import("./actions").ClassSessionInventoryOccursOutput, import("./actions").ClassSessionInventoryOccursMeta>;
|
|
53
59
|
classSessionInventoryPreparation: import("@neon.id/operation").Action<"classSessionInventoryPreparation", import("./actions").ClassSessionInventoryPreparationInput, import("./actions").ClassSessionInventoryPreparationOutput, import("./actions").ClassSessionInventoryPreparationMeta>;
|
package/build/index.mjs
CHANGED
|
@@ -14,6 +14,7 @@ import { getTeacherPoint } from './actions/akademik/action.getTeacherPoint.mjs';
|
|
|
14
14
|
import { getStaffPoint } from './actions/akademik/action.getStaffPoint.mjs';
|
|
15
15
|
import { replaceModuleAccess } from './actions/replaceModuleAccess/replaceModuleAccess.action.mjs';
|
|
16
16
|
import { refreshModuleAccess } from './actions/refreshModuleAccess/refreshModuleAccess.action.mjs';
|
|
17
|
+
import { sendPointNotification } from './actions/akademik/sendPointNotification/sendPointNotification.action.mjs';
|
|
17
18
|
import { allConflict } from './actions/jadwal/action.allConflict.mjs';
|
|
18
19
|
import { classSessionInventoryOccurs } from './actions/jadwal/action.classSessionInventoryOccurs.mjs';
|
|
19
20
|
import { classSessionInventoryPreparation } from './actions/jadwal/action.classSessionInventoryPreparation.mjs';
|
|
@@ -64,6 +65,7 @@ import { createGradingAndScores } from './actions/rasionalisasi/action.createGra
|
|
|
64
65
|
import { updateGradingAndScores } from './actions/rasionalisasi/action.updateGradingAndScores.mjs';
|
|
65
66
|
export { StudentReportSchema } from './actions/akademik/studentReport/syncStudentReport.schema.mjs';
|
|
66
67
|
export { UpdateReportStudentSchema } from './actions/akademik/updateReportStudent/updateReportStudent.schema.mjs';
|
|
68
|
+
export { SendPointNotificationSchema } from './actions/akademik/sendPointNotification/sendPointNotification.schema.mjs';
|
|
67
69
|
export { GetClassSessionConflictsSchema } from './actions/jadwal/getClassSessionConflicts/getClassSessionConflicts.schema.mjs';
|
|
68
70
|
export { SyncClassSessionsSchema } from './actions/jadwal/syncClassSessions/syncClassSessions.schema.mjs';
|
|
69
71
|
export { SetAksesModulSiswaDiClassGroupSchema } from './actions/jadwal/setAksesModulSiswaDiClassGroup/setAksesModulSiswaDiClassGroup.schema.mjs';
|
|
@@ -105,6 +107,7 @@ const actions = {
|
|
|
105
107
|
replaceModuleAccess,
|
|
106
108
|
refreshModuleAccess,
|
|
107
109
|
replaceModuleAccessManyStudent,
|
|
110
|
+
sendPointNotification,
|
|
108
111
|
// Jadwal
|
|
109
112
|
allConflict,
|
|
110
113
|
classSessionInventoryOccurs,
|
|
@@ -158,4 +161,4 @@ const actions = {
|
|
|
158
161
|
syncStudents
|
|
159
162
|
};
|
|
160
163
|
|
|
161
|
-
export { acceptQuestion, actions, addManyGradingComponent, allConflict, bulkDeleteSession, bulkUpdateSession, calculateGrading, calculateManyComparator, calculateOneComparator, checkClassAttendance, classSessionInventoryOccurs, classSessionInventoryPreparation, clearAllOverrides, clearGrading, clearOneOverrides, createGradingAndScores, createManySession, customSaveOneClassSession, deleteManySession, editAnswer, generateGrading, getClassSessionConflicts, getGradingCount, getQuestionCount, getStaffId, getStaffPoint, getStudentId, getStudentPoint, getTeacherPoint, hasUnderstand, importData, notUnderstand, prepareConflict, prepareExperience, prepareMediaScanterGradingInsert, presenceSessionStudent, presenceSessionTeacher, rasionalizeGrading, refreshGrading, refreshManyGrading, refreshModuleAccess, reminderQuestions, replaceModuleAccess, replaceModuleAccessManyStudent, sendAnswer, sendClassConsultationNotification, sendClassSessionNotification, sendQuestion, sendScoreNotification, setAksesModulSiswaDiClassGroup, setTravelWageSessions, syncClassGroups, syncClassSessions, syncCommitment, syncStudentAdmisi, syncStudentBranch, syncStudentInformation, syncStudentReport, syncStudents, updateGradingAndScores, updateMany, updateReportStudent, userCountStats };
|
|
164
|
+
export { acceptQuestion, actions, addManyGradingComponent, allConflict, bulkDeleteSession, bulkUpdateSession, calculateGrading, calculateManyComparator, calculateOneComparator, checkClassAttendance, classSessionInventoryOccurs, classSessionInventoryPreparation, clearAllOverrides, clearGrading, clearOneOverrides, createGradingAndScores, createManySession, customSaveOneClassSession, deleteManySession, editAnswer, generateGrading, getClassSessionConflicts, getGradingCount, getQuestionCount, getStaffId, getStaffPoint, getStudentId, getStudentPoint, getTeacherPoint, hasUnderstand, importData, notUnderstand, prepareConflict, prepareExperience, prepareMediaScanterGradingInsert, presenceSessionStudent, presenceSessionTeacher, rasionalizeGrading, refreshGrading, refreshManyGrading, refreshModuleAccess, reminderQuestions, replaceModuleAccess, replaceModuleAccessManyStudent, sendAnswer, sendClassConsultationNotification, sendClassSessionNotification, sendPointNotification, sendQuestion, sendScoreNotification, setAksesModulSiswaDiClassGroup, setTravelWageSessions, syncClassGroups, syncClassSessions, syncCommitment, syncStudentAdmisi, syncStudentBranch, syncStudentInformation, syncStudentReport, syncStudents, updateGradingAndScores, updateMany, updateReportStudent, userCountStats };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neutron.co.id/pendidikan-operation",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.25",
|
|
4
4
|
"description": "Operation package of Neutron Pendidikan.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"contributors": [
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"build":
|
|
89
|
+
"build": 150
|
|
90
90
|
}
|