@insignia-education/api-sdk-js 0.13.0 → 0.15.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 (48) hide show
  1. package/coverage/clover.xml +187 -153
  2. package/coverage/coverage-final.json +7 -6
  3. package/coverage/lcov-report/Client.js.html +108 -12
  4. package/coverage/lcov-report/index.html +26 -26
  5. package/coverage/lcov-report/src/Client.js.html +76 -76
  6. package/coverage/lcov-report/src/api/index.html +1 -1
  7. package/coverage/lcov-report/src/api/index.js.html +1 -1
  8. package/coverage/lcov-report/src/api/v1/Accounts.js.html +1 -1
  9. package/coverage/lcov-report/src/api/v1/Auth.js.html +1 -1
  10. package/coverage/lcov-report/src/api/v1/Categories.js.html +1 -1
  11. package/coverage/lcov-report/src/api/v1/Changelogs.js.html +1 -1
  12. package/coverage/lcov-report/src/api/v1/Configs.js.html +1 -1
  13. package/coverage/lcov-report/src/api/v1/ContactForms.js.html +1 -1
  14. package/coverage/lcov-report/src/api/v1/ConversationalTopics.js.html +1 -1
  15. package/coverage/lcov-report/src/api/v1/Countries.js.html +1 -1
  16. package/coverage/lcov-report/src/api/v1/Coupons.js.html +1 -1
  17. package/coverage/lcov-report/src/api/v1/Courses.js.html +17 -8
  18. package/coverage/lcov-report/src/api/v1/Currencies.js.html +1 -1
  19. package/coverage/lcov-report/src/api/v1/Files.js.html +1 -1
  20. package/coverage/lcov-report/src/api/v1/Forums.js.html +1 -1
  21. package/coverage/lcov-report/src/api/v1/Hashes.js.html +1 -1
  22. package/coverage/lcov-report/src/api/v1/Insignias.js.html +1 -1
  23. package/coverage/lcov-report/src/api/v1/Languages.js.html +1 -1
  24. package/coverage/lcov-report/src/api/v1/MailBlacklist.js.html +1 -1
  25. package/coverage/lcov-report/src/api/v1/Organizations.js.html +1 -1
  26. package/coverage/lcov-report/src/api/v1/PaymentMethods.js.html +1 -1
  27. package/coverage/lcov-report/src/api/v1/Payments.js.html +121 -0
  28. package/coverage/lcov-report/src/api/v1/Quizzes.js.html +1 -1
  29. package/coverage/lcov-report/src/api/v1/ShortLinks.js.html +1 -1
  30. package/coverage/lcov-report/src/api/v1/Surveys.js.html +1 -1
  31. package/coverage/lcov-report/src/api/v1/Taxes.js.html +1 -1
  32. package/coverage/lcov-report/src/api/v1/Teacher.js.html +34 -10
  33. package/coverage/lcov-report/src/api/v1/UserTypes.js.html +1 -1
  34. package/coverage/lcov-report/src/api/v1/Users.js.html +26 -8
  35. package/coverage/lcov-report/src/api/v1/Zoom.js.html +1 -1
  36. package/coverage/lcov-report/src/api/v1/index.html +50 -35
  37. package/coverage/lcov-report/src/api/v1/index.js.html +10 -4
  38. package/coverage/lcov-report/src/index.html +15 -15
  39. package/coverage/lcov-report/src/index.js.html +1 -1
  40. package/coverage/lcov-report/tests/helpers.js.html +1 -1
  41. package/coverage/lcov-report/tests/index.html +1 -1
  42. package/coverage/lcov.info +280 -226
  43. package/coverage/test-report.html +606 -1
  44. package/package.json +1 -1
  45. package/src/api/v1/Payments.js +12 -0
  46. package/src/api/v1/Teacher.js +5 -1
  47. package/src/api/v1/Users.js +4 -0
  48. package/src/api/v1/index.js +2 -0
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">33.68% </span>
26
+ <span class="strong">35.71% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>32/95</span>
28
+ <span class='fraction'>35/98</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">33.33% </span>
40
+ <span class="strong">30.76% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/12</span>
42
+ <span class='fraction'>4/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">33.68% </span>
47
+ <span class="strong">35.71% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/95</span>
49
+ <span class='fraction'>35/98</span>
50
50
  </div>
51
51
 
52
52
 
@@ -158,7 +158,10 @@
158
158
  <a name='L93'></a><a href='#L93'>93</a>
159
159
  <a name='L94'></a><a href='#L94'>94</a>
160
160
  <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
162
165
  <span class="cline-any cline-yes">1x</span>
163
166
  <span class="cline-any cline-yes">1x</span>
164
167
  <span class="cline-any cline-yes">1x</span>
@@ -185,6 +188,9 @@
185
188
  <span class="cline-any cline-yes">1x</span>
186
189
  <span class="cline-any cline-yes">1x</span>
187
190
  <span class="cline-any cline-yes">1x</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-yes">1x</span>
188
194
  <span class="cline-any cline-no">&nbsp;</span>
189
195
  <span class="cline-any cline-no">&nbsp;</span>
190
196
  <span class="cline-any cline-no">&nbsp;</span>
@@ -278,6 +284,9 @@
278
284
  <span class="fstat-no" title="function not covered" > create(data) { return this.#client.put('/courses', data); }</span>
279
285
  <span class="fstat-no" title="function not covered" > edit(id, data) { return this.#client.patch(`/courses/${id}`, data); }</span>
280
286
  <span class="fstat-no" title="function not covered" > delete(id) { return this.#client.del(`/courses/${id}`); }</span>
287
+ &nbsp;
288
+ /** Users enrolled on this course as a teacher (user_courses.teacher = 1). */
289
+ <span class="fstat-no" title="function not covered" > teachers(courseId) { return this.#client.get(`/courses/${courseId}/teachers`); }</span>
281
290
  &nbsp;
282
291
  <span class="fstat-no" title="function not covered" > dates(courseId) {</span>
283
292
  <span class="cstat-no" title="statement not covered" > const base = `/courses/${courseId}/dates`;</span>
@@ -355,7 +364,7 @@
355
364
  <div class='footer quiet pad2 space-top1 center small'>
356
365
  Code coverage generated by
357
366
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
358
- at 2026-07-20T23:00:44.070Z
367
+ at 2026-07-22T18:27:20.315Z
359
368
  </div>
360
369
  <script src="../../../prettify.js"></script>
361
370
  <script>
@@ -100,7 +100,7 @@
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at 2026-07-20T23:00:44.070Z
103
+ at 2026-07-22T18:27:20.315Z
104
104
  </div>
105
105
  <script src="../../../prettify.js"></script>
106
106
  <script>
@@ -145,7 +145,7 @@
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at 2026-07-20T23:00:44.070Z
148
+ at 2026-07-22T18:27:20.315Z
149
149
  </div>
150
150
  <script src="../../../prettify.js"></script>
151
151
  <script>
@@ -142,7 +142,7 @@
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2026-07-20T23:00:44.070Z
145
+ at 2026-07-22T18:27:20.315Z
146
146
  </div>
147
147
  <script src="../../../prettify.js"></script>
148
148
  <script>
@@ -103,7 +103,7 @@
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2026-07-20T23:00:44.070Z
106
+ at 2026-07-22T18:27:20.315Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -103,7 +103,7 @@
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2026-07-20T23:00:44.070Z
106
+ at 2026-07-22T18:27:20.315Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -103,7 +103,7 @@
103
103
  <div class='footer quiet pad2 space-top1 center small'>
104
104
  Code coverage generated by
105
105
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
106
- at 2026-07-20T23:00:44.070Z
106
+ at 2026-07-22T18:27:20.315Z
107
107
  </div>
108
108
  <script src="../../../prettify.js"></script>
109
109
  <script>
@@ -97,7 +97,7 @@
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
- at 2026-07-20T23:00:44.070Z
100
+ at 2026-07-22T18:27:20.315Z
101
101
  </div>
102
102
  <script src="../../../prettify.js"></script>
103
103
  <script>
@@ -0,0 +1,121 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/api/v1/Payments.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/api/v1</a> Payments.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">83.33% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>10/12</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>2/2</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">66.66% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/3</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">83.33% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>10/12</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line high'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
79
+ <span class="cline-any cline-yes">1x</span>
80
+ <span class="cline-any cline-yes">1x</span>
81
+ <span class="cline-any cline-yes">1x</span>
82
+ <span class="cline-any cline-yes">30x</span>
83
+ <span class="cline-any cline-yes">30x</span>
84
+ <span class="cline-any cline-yes">1x</span>
85
+ <span class="cline-any cline-yes">1x</span>
86
+ <span class="cline-any cline-yes">1x</span>
87
+ <span class="cline-any cline-no">&nbsp;</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-yes">1x</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export default class Payments {
91
+ #client;
92
+ &nbsp;
93
+ constructor(client) {
94
+ this.#client = client;
95
+ }
96
+ &nbsp;
97
+ /** Employee-only: paginated list of all payments. status: 'pending' | 'approved' | 'rejected'. */
98
+ <span class="fstat-no" title="function not covered" > get({ status = null, page = 1, perPage = 15 } = {}) {</span>
99
+ <span class="cstat-no" title="statement not covered" > return this.#client.get('/payments', { status, page, per_page: perPage });</span>
100
+ <span class="cstat-no" title="statement not covered" > }</span>
101
+ }
102
+ &nbsp;</pre></td></tr></table></pre>
103
+
104
+ <div class='push'></div><!-- for sticky footer -->
105
+ </div><!-- /wrapper -->
106
+ <div class='footer quiet pad2 space-top1 center small'>
107
+ Code coverage generated by
108
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
+ at 2026-07-22T18:27:20.315Z
110
+ </div>
111
+ <script src="../../../prettify.js"></script>
112
+ <script>
113
+ window.onload = function () {
114
+ prettyPrint();
115
+ };
116
+ </script>
117
+ <script src="../../../sorter.js"></script>
118
+ <script src="../../../block-navigation.js"></script>
119
+ </body>
120
+ </html>
121
+
@@ -166,7 +166,7 @@
166
166
  <div class='footer quiet pad2 space-top1 center small'>
167
167
  Code coverage generated by
168
168
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at 2026-07-20T23:00:44.070Z
169
+ at 2026-07-22T18:27:20.315Z
170
170
  </div>
171
171
  <script src="../../../prettify.js"></script>
172
172
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -166,7 +166,7 @@
166
166
  <div class='footer quiet pad2 space-top1 center small'>
167
167
  Code coverage generated by
168
168
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at 2026-07-20T23:00:44.070Z
169
+ at 2026-07-22T18:27:20.315Z
170
170
  </div>
171
171
  <script src="../../../prettify.js"></script>
172
172
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.37% </span>
26
+ <span class="strong">73.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>29/37</span>
28
+ <span class='fraction'>33/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75% </span>
33
+ <span class="strong">60% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/8</span>
35
+ <span class='fraction'>6/10</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.37% </span>
47
+ <span class="strong">73.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>29/37</span>
49
+ <span class='fraction'>33/45</span>
50
50
  </div>
51
51
 
52
52
 
@@ -100,7 +100,15 @@
100
100
  <a name='L35'></a><a href='#L35'>35</a>
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
102
  <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
104
112
  <span class="cline-any cline-yes">1x</span>
105
113
  <span class="cline-any cline-yes">1x</span>
106
114
  <span class="cline-any cline-yes">1x</span>
@@ -128,6 +136,14 @@
128
136
  <span class="cline-any cline-yes">1x</span>
129
137
  <span class="cline-any cline-yes">1x</span>
130
138
  <span class="cline-any cline-yes">1x</span>
139
+ <span class="cline-any cline-yes">1x</span>
140
+ <span class="cline-any cline-yes">1x</span>
141
+ <span class="cline-any cline-yes">1x</span>
142
+ <span class="cline-any cline-yes">1x</span>
143
+ <span class="cline-any cline-no">&nbsp;</span>
144
+ <span class="cline-any cline-no">&nbsp;</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
131
147
  <span class="cline-any cline-no">&nbsp;</span>
132
148
  <span class="cline-any cline-no">&nbsp;</span>
133
149
  <span class="cline-any cline-no">&nbsp;</span>
@@ -157,7 +173,11 @@
157
173
  configSets() {
158
174
  const base = '/teacher/config-sets';
159
175
  return {
160
- get: (id = null) =&gt; id<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`${base}/${id}`) </span>: this.#client.get(base),
176
+ /** get() / get(id) / get({ user_id }) the last filters the list to one teacher's sets. */
177
+ get: (idOrParams = null) =&gt; {
178
+ if (idOrParams<span class="branch-0 cbranch-no" title="branch not covered" > &amp;&amp; typeof idOrParams === 'object')</span> <span class="branch-0 cbranch-no" title="branch not covered" >return this.#client.get(base, idOrParams);</span>
179
+ return idOrParams<span class="branch-0 cbranch-no" title="branch not covered" > ? this.#client.get(`${base}/${idOrParams}`) </span>: this.#client.get(base);
180
+ },
161
181
  create: (<span class="fstat-no" title="function not covered" >data) =&gt; this.#client.put(base, data),</span>
162
182
  edit: <span class="fstat-no" title="function not covered" >(id, data) =&gt; this.#client.patch(`${base}/${id}`, data),</span>
163
183
  delete: (<span class="fstat-no" title="function not covered" >id) =&gt; this.#client.del(`${base}/${id}`),</span>
@@ -167,7 +187,11 @@
167
187
  <span class="fstat-no" title="function not covered" > configs() {</span>
168
188
  <span class="cstat-no" title="statement not covered" > const base = '/teacher/configs';</span>
169
189
  <span class="cstat-no" title="statement not covered" > return {</span>
170
- <span class="cstat-no" title="statement not covered" > get: (id = null) =&gt; id ? this.#client.get(`${base}/${id}`) : this.#client.get(base),</span>
190
+ <span class="cstat-no" title="statement not covered" > /** get() / get(id) / get({ config_set_id }) the last filters the list to one config set. */</span>
191
+ <span class="cstat-no" title="statement not covered" > get: (idOrParams = null) =&gt; {</span>
192
+ <span class="cstat-no" title="statement not covered" > if (idOrParams &amp;&amp; typeof idOrParams === 'object') return this.#client.get(base, idOrParams);</span>
193
+ <span class="cstat-no" title="statement not covered" > return idOrParams ? this.#client.get(`${base}/${idOrParams}`) : this.#client.get(base);</span>
194
+ <span class="cstat-no" title="statement not covered" > },</span>
171
195
  <span class="cstat-no" title="statement not covered" > create: (data) =&gt; this.#client.put(base, data),</span>
172
196
  <span class="cstat-no" title="statement not covered" > edit: (id, data) =&gt; this.#client.patch(`${base}/${id}`, data),</span>
173
197
  <span class="cstat-no" title="statement not covered" > delete: (id) =&gt; this.#client.del(`${base}/${id}`),</span>
@@ -181,7 +205,7 @@
181
205
  <div class='footer quiet pad2 space-top1 center small'>
182
206
  Code coverage generated by
183
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
184
- at 2026-07-20T23:00:44.070Z
208
+ at 2026-07-22T18:27:20.315Z
185
209
  </div>
186
210
  <script src="../../../prettify.js"></script>
187
211
  <script>
@@ -106,7 +106,7 @@
106
106
  <div class='footer quiet pad2 space-top1 center small'>
107
107
  Code coverage generated by
108
108
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
109
- at 2026-07-20T23:00:44.070Z
109
+ at 2026-07-22T18:27:20.315Z
110
110
  </div>
111
111
  <script src="../../../prettify.js"></script>
112
112
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">39.83% </span>
26
+ <span class="strong">41.12% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/118</span>
28
+ <span class='fraction'>51/124</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">16% </span>
40
+ <span class="strong">14.81% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/25</span>
42
+ <span class='fraction'>4/27</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">39.83% </span>
47
+ <span class="strong">41.12% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>47/118</span>
49
+ <span class='fraction'>51/124</span>
50
50
  </div>
51
51
 
52
52
 
@@ -181,7 +181,13 @@
181
181
  <a name='L116'></a><a href='#L116'>116</a>
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
185
191
  <span class="cline-any cline-yes">1x</span>
186
192
  <span class="cline-any cline-yes">1x</span>
187
193
  <span class="cline-any cline-yes">1x</span>
@@ -197,6 +203,12 @@
197
203
  <span class="cline-any cline-yes">1x</span>
198
204
  <span class="cline-any cline-yes">1x</span>
199
205
  <span class="cline-any cline-yes">1x</span>
206
+ <span class="cline-any cline-yes">1x</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
208
+ <span class="cline-any cline-no">&nbsp;</span>
209
+ <span class="cline-any cline-yes">1x</span>
210
+ <span class="cline-any cline-yes">1x</span>
211
+ <span class="cline-any cline-yes">1x</span>
200
212
  <span class="cline-any cline-no">&nbsp;</span>
201
213
  <span class="cline-any cline-no">&nbsp;</span>
202
214
  <span class="cline-any cline-no">&nbsp;</span>
@@ -312,6 +324,12 @@
312
324
  cashReceivers() { return this.#client.get('/users/cash-receivers'); }
313
325
  /** Employee-only: users assignable as a course owner (super-admins, education centers, organizations). */
314
326
  <span class="fstat-no" title="function not covered" > assignable() { return this.#client.get('/users/assignable'); }</span>
327
+ /** Employee-only: users assignable as a course teacher (super-admins, admins, employees, teachers). */
328
+ <span class="fstat-no" title="function not covered" > assignableTeachers() { return this.#client.get('/users/assignable-teachers'); }</span>
329
+ /** Employee-only: paginated list of teacher-type users, for the admin Teachers view. */
330
+ <span class="fstat-no" title="function not covered" > teachers({ page = 1, perPage = 15 } = {}) {</span>
331
+ <span class="cstat-no" title="statement not covered" > return this.#client.get('/users/teachers', { page, per_page: perPage });</span>
332
+ <span class="cstat-no" title="statement not covered" > }</span>
315
333
  <span class="fstat-no" title="function not covered" > edit(id, data) { return this.#client.patch(`/users/${id}`, data); }</span>
316
334
  &nbsp;
317
335
  <span class="fstat-no" title="function not covered" > #nested(userId, path) {</span>
@@ -424,7 +442,7 @@
424
442
  <div class='footer quiet pad2 space-top1 center small'>
425
443
  Code coverage generated by
426
444
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
427
- at 2026-07-20T23:00:44.070Z
445
+ at 2026-07-22T18:27:20.315Z
428
446
  </div>
429
447
  <script src="../../../prettify.js"></script>
430
448
  <script>
@@ -109,7 +109,7 @@
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
- at 2026-07-20T23:00:44.070Z
112
+ at 2026-07-22T18:27:20.315Z
113
113
  </div>
114
114
  <script src="../../../prettify.js"></script>
115
115
  <script>