@insignia-education/api-sdk-js 0.15.96 → 0.15.99
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/package.json +1 -1
- package/src/api/v1/Admin.js +14 -0
- package/src/api/v1/Courses.js +3 -0
- package/src/api/v1/Quizzes.js +2 -1
package/package.json
CHANGED
package/src/api/v1/Admin.js
CHANGED
|
@@ -55,6 +55,20 @@ export default class Admin {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
/** Paginated per-teacher report for a date range: hours given, sessions given, absences (substituted out) and substitutions (covered for someone else). */
|
|
59
|
+
reportsTeacherStats({ fromDate, toDate, page, perPage } = {}) {
|
|
60
|
+
return this.#client.get('/admin/reports/teacher-stats', {
|
|
61
|
+
from_date: fromDate, to_date: toDate, page, per_page: perPage,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Direct download link for the teacher-stats report (format: 'csv' | 'xlsx'). */
|
|
66
|
+
reportsTeacherStatsExportUrl({ fromDate, toDate, format = 'csv' } = {}) {
|
|
67
|
+
return Admin.#buildUrl(this.#client.baseUrl, '/admin/reports/teacher-stats/export', {
|
|
68
|
+
from_date: fromDate, to_date: toDate, format,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
58
72
|
static #buildUrl(baseUrl, path, params) {
|
|
59
73
|
const qs = new URLSearchParams(
|
|
60
74
|
Object.entries(params).filter(([, v]) => v !== undefined && v !== null && v !== '')
|
package/src/api/v1/Courses.js
CHANGED
|
@@ -24,6 +24,9 @@ export default class Courses {
|
|
|
24
24
|
edit(id, data) { return this.#client.patch(`/courses/${id}`, data); }
|
|
25
25
|
delete(id) { return this.#client.del(`/courses/${id}`); }
|
|
26
26
|
|
|
27
|
+
/** Replaces the full set of accepted-equivalent prerequisites (any ONE unlocks the course, not all of them) — e.g. english-5 accepting english-4, english-4-personal or english-4-semi. Pass [] to clear. */
|
|
28
|
+
updatePrerequisites(id, prerequisiteIds) { return this.#client.patch(`/courses/${id}/prerequisites`, { prerequisite_ids: prerequisiteIds }); }
|
|
29
|
+
|
|
27
30
|
/** Users enrolled on this course as a teacher (user_courses.teacher = 1). */
|
|
28
31
|
teachers(courseId) { return this.#client.get(`/courses/${courseId}/teachers`); }
|
|
29
32
|
|
package/src/api/v1/Quizzes.js
CHANGED
|
@@ -25,7 +25,8 @@ export default class Quizzes {
|
|
|
25
25
|
const client = this.#client;
|
|
26
26
|
const base = `/quizzes/${quizId}/questions`;
|
|
27
27
|
return {
|
|
28
|
-
|
|
28
|
+
/** Pass `{ forAttempt: true }` to get the authenticated user's next-attempt question subset (capped to Quiz.max_questions) instead of the full list. */
|
|
29
|
+
get: (id = null, { forAttempt = false } = {}) => id ? client.get(`${base}/${id}`) : client.get(base, forAttempt ? { for_attempt: 1 } : undefined),
|
|
29
30
|
create: (data) => client.put(base, data),
|
|
30
31
|
edit: (id, data) => client.patch(`${base}/${id}`, data),
|
|
31
32
|
delete: (id) => client.del(`${base}/${id}`),
|