@insignia-education/api-sdk-js 0.17.3 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insignia-education/api-sdk-js",
3
- "version": "0.17.3",
3
+ "version": "0.19.0",
4
4
  "description": "JavaScript SDK for the Insignia Education API",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -20,6 +20,8 @@ export default class Quizzes {
20
20
  create(data) { return this.#client.put('/quizzes', data); }
21
21
  edit(id, data) { return this.#client.patch(`/quizzes/${id}`, data); }
22
22
  delete(id) { return this.#client.del(`/quizzes/${id}`); }
23
+ /** Undoes delete() — brings a soft-deleted quiz back into the normal list. */
24
+ restore(id) { return this.#client.post(`/quizzes/${id}/restore`); }
23
25
 
24
26
  questions(quizId) {
25
27
  const client = this.#client;
@@ -30,6 +32,8 @@ export default class Quizzes {
30
32
  create: (data) => client.put(base, data),
31
33
  edit: (id, data) => client.patch(`${base}/${id}`, data),
32
34
  delete: (id) => client.del(`${base}/${id}`),
35
+ /** Undoes delete() — brings a soft-deleted question back into the normal list. */
36
+ restore: (id) => client.post(`${base}/${id}/restore`),
33
37
  answers: (questionId) => {
34
38
  const aBase = `${base}/${questionId}/answers`;
35
39
  return {
@@ -37,6 +41,8 @@ export default class Quizzes {
37
41
  create: (data) => client.put(aBase, data),
38
42
  edit: (id, data) => client.patch(`${aBase}/${id}`, data),
39
43
  delete: (id) => client.del(`${aBase}/${id}`),
44
+ /** Undoes delete() — brings a soft-deleted answer back into the normal list. */
45
+ restore: (id) => client.post(`${aBase}/${id}/restore`),
40
46
  };
41
47
  },
42
48
  /** Grading-rubric criteria for one question — shown to the teacher while grading an open/audio/document/link answer. */
@@ -47,6 +53,8 @@ export default class Quizzes {
47
53
  create: (data) => client.put(cBase, data),
48
54
  edit: (id, data) => client.patch(`${cBase}/${id}`, data),
49
55
  delete: (id) => client.del(`${cBase}/${id}`),
56
+ /** Undoes delete() — brings a soft-deleted criteria row back into the normal list. */
57
+ restore: (id) => client.post(`${cBase}/${id}/restore`),
50
58
  };
51
59
  },
52
60
  };
@@ -204,6 +204,22 @@ export default class Users {
204
204
  };
205
205
  }
206
206
 
207
+ /**
208
+ * Logged-in devices/sessions. Rows are only ever created by the auth flow
209
+ * itself (a real login/refresh) — this is read + revoke, never create.
210
+ */
211
+ devices(userId) {
212
+ const base = `/users/${userId}/devices`;
213
+ const client = this.#client;
214
+ return {
215
+ get: () => client.get(base),
216
+ /** Revoke one device by its id — that device's token stops being accepted immediately. */
217
+ delete: (id) => client.del(`${base}/${id}`),
218
+ /** "Log out all other devices" — keeps the caller's own current session intact. */
219
+ deleteAll: () => client.del(base),
220
+ };
221
+ }
222
+
207
223
  experiences(userId) {
208
224
  const base = `/users/${userId}/experiences`;
209
225
  const client = this.#client;