placementt-core 1.300.1210 → 1.300.1211
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/lib/callables/activities.d.ts +73 -0
- package/lib/callables/activities.js +14 -12
- package/lib/callables/activities.js.map +1 -1
- package/lib/callables/registry.d.ts +102 -6
- package/lib/callables/userManagement.d.ts +53 -4
- package/lib/callables/userManagement.js +4 -1
- package/lib/callables/userManagement.js.map +1 -1
- package/lib/callables/userManagement.test.d.ts +1 -0
- package/lib/callables/userManagement.test.js +19 -0
- package/lib/callables/userManagement.test.js.map +1 -0
- package/package.json +1 -1
- package/src/callables/activities.ts +13 -10
- package/src/callables/userManagement.test.ts +20 -0
- package/src/callables/userManagement.ts +4 -1
|
@@ -1,4 +1,77 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Contracts for staff adding student activities
|
|
4
|
+
* (`Placementt-Backend/functions/src/activities.ts`).
|
|
5
|
+
*/
|
|
6
|
+
/** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
|
|
7
|
+
export declare const selectAllSelection: z.ZodObject<{
|
|
8
|
+
allSelected: z.ZodBoolean;
|
|
9
|
+
search: z.ZodOptional<z.ZodString>;
|
|
10
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
11
|
+
k: z.ZodString;
|
|
12
|
+
e: z.ZodOptional<z.ZodString>;
|
|
13
|
+
v: z.ZodUnknown;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
k: string;
|
|
16
|
+
v?: unknown;
|
|
17
|
+
e?: string | undefined;
|
|
18
|
+
}, {
|
|
19
|
+
k: string;
|
|
20
|
+
v?: unknown;
|
|
21
|
+
e?: string | undefined;
|
|
22
|
+
}>, "many">>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
allSelected: boolean;
|
|
25
|
+
search?: string | undefined;
|
|
26
|
+
filters?: {
|
|
27
|
+
k: string;
|
|
28
|
+
v?: unknown;
|
|
29
|
+
e?: string | undefined;
|
|
30
|
+
}[] | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
allSelected: boolean;
|
|
33
|
+
search?: string | undefined;
|
|
34
|
+
filters?: {
|
|
35
|
+
k: string;
|
|
36
|
+
v?: unknown;
|
|
37
|
+
e?: string | undefined;
|
|
38
|
+
}[] | undefined;
|
|
39
|
+
}>;
|
|
40
|
+
/** The students picked in the student table, as DataViewerSelectionBackend:
|
|
41
|
+
* a filter (with an optional search), or a list of uids. */
|
|
42
|
+
export declare const studentSelection: z.ZodUnion<[z.ZodObject<{
|
|
43
|
+
allSelected: z.ZodBoolean;
|
|
44
|
+
search: z.ZodOptional<z.ZodString>;
|
|
45
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
46
|
+
k: z.ZodString;
|
|
47
|
+
e: z.ZodOptional<z.ZodString>;
|
|
48
|
+
v: z.ZodUnknown;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
k: string;
|
|
51
|
+
v?: unknown;
|
|
52
|
+
e?: string | undefined;
|
|
53
|
+
}, {
|
|
54
|
+
k: string;
|
|
55
|
+
v?: unknown;
|
|
56
|
+
e?: string | undefined;
|
|
57
|
+
}>, "many">>;
|
|
58
|
+
}, "strip", z.ZodTypeAny, {
|
|
59
|
+
allSelected: boolean;
|
|
60
|
+
search?: string | undefined;
|
|
61
|
+
filters?: {
|
|
62
|
+
k: string;
|
|
63
|
+
v?: unknown;
|
|
64
|
+
e?: string | undefined;
|
|
65
|
+
}[] | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
allSelected: boolean;
|
|
68
|
+
search?: string | undefined;
|
|
69
|
+
filters?: {
|
|
70
|
+
k: string;
|
|
71
|
+
v?: unknown;
|
|
72
|
+
e?: string | undefined;
|
|
73
|
+
}[] | undefined;
|
|
74
|
+
}>, z.ZodArray<z.ZodString, "many">]>;
|
|
2
75
|
/** What staff fill in on the activity builder. Everything the server owns (who
|
|
3
76
|
* it belongs to, who made it, how it is verified, when) is set there, never sent. */
|
|
4
77
|
declare const staffActivity: z.ZodObject<{
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.activitiesCallables = void 0;
|
|
3
|
+
exports.activitiesCallables = exports.studentSelection = exports.selectAllSelection = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
/**
|
|
6
6
|
* Contracts for staff adding student activities
|
|
7
7
|
* (`Placementt-Backend/functions/src/activities.ts`).
|
|
8
8
|
*/
|
|
9
|
+
/** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
|
|
10
|
+
exports.selectAllSelection = zod_1.z.object({
|
|
11
|
+
allSelected: zod_1.z.boolean(),
|
|
12
|
+
search: zod_1.z.string().optional(),
|
|
13
|
+
filters: zod_1.z.array(zod_1.z.object({
|
|
14
|
+
k: zod_1.z.string(),
|
|
15
|
+
e: zod_1.z.string().optional(),
|
|
16
|
+
v: zod_1.z.unknown(),
|
|
17
|
+
})).optional(),
|
|
18
|
+
});
|
|
9
19
|
/** The students picked in the student table, as DataViewerSelectionBackend:
|
|
10
20
|
* a filter (with an optional search), or a list of uids. */
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
allSelected: zod_1.z.boolean(),
|
|
14
|
-
search: zod_1.z.string().optional(),
|
|
15
|
-
filters: zod_1.z.array(zod_1.z.object({
|
|
16
|
-
k: zod_1.z.string(),
|
|
17
|
-
e: zod_1.z.string().optional(),
|
|
18
|
-
v: zod_1.z.unknown(),
|
|
19
|
-
})).optional(),
|
|
20
|
-
}),
|
|
21
|
+
exports.studentSelection = zod_1.z.union([
|
|
22
|
+
exports.selectAllSelection,
|
|
21
23
|
zod_1.z.array(zod_1.z.string().min(1).max(128)).max(5000),
|
|
22
24
|
]);
|
|
23
25
|
/** What staff fill in on the activity builder. Everything the server owns (who
|
|
@@ -50,7 +52,7 @@ exports.activitiesCallables = {
|
|
|
50
52
|
request: zod_1.z.object({
|
|
51
53
|
/** The school the students belong to. */
|
|
52
54
|
oId: zod_1.z.string().min(1).max(128),
|
|
53
|
-
students: studentSelection,
|
|
55
|
+
students: exports.studentSelection,
|
|
54
56
|
activity: staffActivity,
|
|
55
57
|
/** Set by `useExecuteCallableJob`. */
|
|
56
58
|
jobId: zod_1.z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/callables/activities.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAGtB;;;GAGG;AAEH;
|
|
1
|
+
{"version":3,"file":"activities.js","sourceRoot":"","sources":["../../src/callables/activities.ts"],"names":[],"mappings":"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"}
|
|
@@ -630,7 +630,39 @@ export declare const allCallables: {
|
|
|
630
630
|
};
|
|
631
631
|
"userManagement-checkStudentActivation": {
|
|
632
632
|
request: z.ZodObject<{
|
|
633
|
-
users: z.ZodUnion<[z.
|
|
633
|
+
users: z.ZodUnion<[z.ZodObject<{
|
|
634
|
+
allSelected: z.ZodBoolean;
|
|
635
|
+
search: z.ZodOptional<z.ZodString>;
|
|
636
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
637
|
+
k: z.ZodString;
|
|
638
|
+
e: z.ZodOptional<z.ZodString>;
|
|
639
|
+
v: z.ZodUnknown;
|
|
640
|
+
}, "strip", z.ZodTypeAny, {
|
|
641
|
+
k: string;
|
|
642
|
+
v?: unknown;
|
|
643
|
+
e?: string | undefined;
|
|
644
|
+
}, {
|
|
645
|
+
k: string;
|
|
646
|
+
v?: unknown;
|
|
647
|
+
e?: string | undefined;
|
|
648
|
+
}>, "many">>;
|
|
649
|
+
}, "strip", z.ZodTypeAny, {
|
|
650
|
+
allSelected: boolean;
|
|
651
|
+
search?: string | undefined;
|
|
652
|
+
filters?: {
|
|
653
|
+
k: string;
|
|
654
|
+
v?: unknown;
|
|
655
|
+
e?: string | undefined;
|
|
656
|
+
}[] | undefined;
|
|
657
|
+
}, {
|
|
658
|
+
allSelected: boolean;
|
|
659
|
+
search?: string | undefined;
|
|
660
|
+
filters?: {
|
|
661
|
+
k: string;
|
|
662
|
+
v?: unknown;
|
|
663
|
+
e?: string | undefined;
|
|
664
|
+
}[] | undefined;
|
|
665
|
+
}>, z.ZodArray<z.ZodObject<{
|
|
634
666
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
635
667
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
636
668
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
@@ -643,14 +675,30 @@ export declare const allCallables: {
|
|
|
643
675
|
filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
644
676
|
cohortId: z.ZodOptional<z.ZodString>;
|
|
645
677
|
}, "strip", z.ZodTypeAny, {
|
|
646
|
-
users: Record<string, unknown> |
|
|
678
|
+
users: Record<string, unknown> | {
|
|
679
|
+
allSelected: boolean;
|
|
680
|
+
search?: string | undefined;
|
|
681
|
+
filters?: {
|
|
682
|
+
k: string;
|
|
683
|
+
v?: unknown;
|
|
684
|
+
e?: string | undefined;
|
|
685
|
+
}[] | undefined;
|
|
686
|
+
} | z.objectOutputType<{
|
|
647
687
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
648
688
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
649
689
|
}, z.ZodTypeAny, "passthrough">[];
|
|
650
690
|
cohortId?: string | undefined;
|
|
651
691
|
filters?: Record<string, string | number | boolean> | undefined;
|
|
652
692
|
}, {
|
|
653
|
-
users: Record<string, unknown> |
|
|
693
|
+
users: Record<string, unknown> | {
|
|
694
|
+
allSelected: boolean;
|
|
695
|
+
search?: string | undefined;
|
|
696
|
+
filters?: {
|
|
697
|
+
k: string;
|
|
698
|
+
v?: unknown;
|
|
699
|
+
e?: string | undefined;
|
|
700
|
+
}[] | undefined;
|
|
701
|
+
} | z.objectInputType<{
|
|
654
702
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
655
703
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
656
704
|
}, z.ZodTypeAny, "passthrough">[];
|
|
@@ -4836,7 +4884,39 @@ export declare const callableGroups: {
|
|
|
4836
4884
|
};
|
|
4837
4885
|
"userManagement-checkStudentActivation": {
|
|
4838
4886
|
request: z.ZodObject<{
|
|
4839
|
-
users: z.ZodUnion<[z.
|
|
4887
|
+
users: z.ZodUnion<[z.ZodObject<{
|
|
4888
|
+
allSelected: z.ZodBoolean;
|
|
4889
|
+
search: z.ZodOptional<z.ZodString>;
|
|
4890
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
4891
|
+
k: z.ZodString;
|
|
4892
|
+
e: z.ZodOptional<z.ZodString>;
|
|
4893
|
+
v: z.ZodUnknown;
|
|
4894
|
+
}, "strip", z.ZodTypeAny, {
|
|
4895
|
+
k: string;
|
|
4896
|
+
v?: unknown;
|
|
4897
|
+
e?: string | undefined;
|
|
4898
|
+
}, {
|
|
4899
|
+
k: string;
|
|
4900
|
+
v?: unknown;
|
|
4901
|
+
e?: string | undefined;
|
|
4902
|
+
}>, "many">>;
|
|
4903
|
+
}, "strip", z.ZodTypeAny, {
|
|
4904
|
+
allSelected: boolean;
|
|
4905
|
+
search?: string | undefined;
|
|
4906
|
+
filters?: {
|
|
4907
|
+
k: string;
|
|
4908
|
+
v?: unknown;
|
|
4909
|
+
e?: string | undefined;
|
|
4910
|
+
}[] | undefined;
|
|
4911
|
+
}, {
|
|
4912
|
+
allSelected: boolean;
|
|
4913
|
+
search?: string | undefined;
|
|
4914
|
+
filters?: {
|
|
4915
|
+
k: string;
|
|
4916
|
+
v?: unknown;
|
|
4917
|
+
e?: string | undefined;
|
|
4918
|
+
}[] | undefined;
|
|
4919
|
+
}>, z.ZodArray<z.ZodObject<{
|
|
4840
4920
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4841
4921
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
4842
4922
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
@@ -4849,14 +4929,30 @@ export declare const callableGroups: {
|
|
|
4849
4929
|
filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
4850
4930
|
cohortId: z.ZodOptional<z.ZodString>;
|
|
4851
4931
|
}, "strip", z.ZodTypeAny, {
|
|
4852
|
-
users: Record<string, unknown> |
|
|
4932
|
+
users: Record<string, unknown> | {
|
|
4933
|
+
allSelected: boolean;
|
|
4934
|
+
search?: string | undefined;
|
|
4935
|
+
filters?: {
|
|
4936
|
+
k: string;
|
|
4937
|
+
v?: unknown;
|
|
4938
|
+
e?: string | undefined;
|
|
4939
|
+
}[] | undefined;
|
|
4940
|
+
} | z.objectOutputType<{
|
|
4853
4941
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4854
4942
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
4855
4943
|
}, z.ZodTypeAny, "passthrough">[];
|
|
4856
4944
|
cohortId?: string | undefined;
|
|
4857
4945
|
filters?: Record<string, string | number | boolean> | undefined;
|
|
4858
4946
|
}, {
|
|
4859
|
-
users: Record<string, unknown> |
|
|
4947
|
+
users: Record<string, unknown> | {
|
|
4948
|
+
allSelected: boolean;
|
|
4949
|
+
search?: string | undefined;
|
|
4950
|
+
filters?: {
|
|
4951
|
+
k: string;
|
|
4952
|
+
v?: unknown;
|
|
4953
|
+
e?: string | undefined;
|
|
4954
|
+
}[] | undefined;
|
|
4955
|
+
} | z.objectInputType<{
|
|
4860
4956
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
4861
4957
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
4862
4958
|
}, z.ZodTypeAny, "passthrough">[];
|
|
@@ -42,8 +42,41 @@ export declare const userManagementCallables: {
|
|
|
42
42
|
*/
|
|
43
43
|
"userManagement-checkStudentActivation": {
|
|
44
44
|
request: z.ZodObject<{
|
|
45
|
-
/**
|
|
46
|
-
|
|
45
|
+
/** A table's "select all" as a DataViewer selection, picked students keyed
|
|
46
|
+
* by uid, or (older clients) query objects. */
|
|
47
|
+
users: z.ZodUnion<[z.ZodObject<{
|
|
48
|
+
allSelected: z.ZodBoolean;
|
|
49
|
+
search: z.ZodOptional<z.ZodString>;
|
|
50
|
+
filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
51
|
+
k: z.ZodString;
|
|
52
|
+
e: z.ZodOptional<z.ZodString>;
|
|
53
|
+
v: z.ZodUnknown;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
k: string;
|
|
56
|
+
v?: unknown;
|
|
57
|
+
e?: string | undefined;
|
|
58
|
+
}, {
|
|
59
|
+
k: string;
|
|
60
|
+
v?: unknown;
|
|
61
|
+
e?: string | undefined;
|
|
62
|
+
}>, "many">>;
|
|
63
|
+
}, "strip", z.ZodTypeAny, {
|
|
64
|
+
allSelected: boolean;
|
|
65
|
+
search?: string | undefined;
|
|
66
|
+
filters?: {
|
|
67
|
+
k: string;
|
|
68
|
+
v?: unknown;
|
|
69
|
+
e?: string | undefined;
|
|
70
|
+
}[] | undefined;
|
|
71
|
+
}, {
|
|
72
|
+
allSelected: boolean;
|
|
73
|
+
search?: string | undefined;
|
|
74
|
+
filters?: {
|
|
75
|
+
k: string;
|
|
76
|
+
v?: unknown;
|
|
77
|
+
e?: string | undefined;
|
|
78
|
+
}[] | undefined;
|
|
79
|
+
}>, z.ZodArray<z.ZodObject<{
|
|
47
80
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
48
81
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
49
82
|
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
@@ -57,14 +90,30 @@ export declare const userManagementCallables: {
|
|
|
57
90
|
filters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
58
91
|
cohortId: z.ZodOptional<z.ZodString>;
|
|
59
92
|
}, "strip", z.ZodTypeAny, {
|
|
60
|
-
users: Record<string, unknown> |
|
|
93
|
+
users: Record<string, unknown> | {
|
|
94
|
+
allSelected: boolean;
|
|
95
|
+
search?: string | undefined;
|
|
96
|
+
filters?: {
|
|
97
|
+
k: string;
|
|
98
|
+
v?: unknown;
|
|
99
|
+
e?: string | undefined;
|
|
100
|
+
}[] | undefined;
|
|
101
|
+
} | z.objectOutputType<{
|
|
61
102
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
62
103
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
63
104
|
}, z.ZodTypeAny, "passthrough">[];
|
|
64
105
|
cohortId?: string | undefined;
|
|
65
106
|
filters?: Record<string, string | number | boolean> | undefined;
|
|
66
107
|
}, {
|
|
67
|
-
users: Record<string, unknown> |
|
|
108
|
+
users: Record<string, unknown> | {
|
|
109
|
+
allSelected: boolean;
|
|
110
|
+
search?: string | undefined;
|
|
111
|
+
filters?: {
|
|
112
|
+
k: string;
|
|
113
|
+
v?: unknown;
|
|
114
|
+
e?: string | undefined;
|
|
115
|
+
}[] | undefined;
|
|
116
|
+
} | z.objectInputType<{
|
|
68
117
|
path: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
69
118
|
where: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodUnknown, "many">, "many">>;
|
|
70
119
|
}, z.ZodTypeAny, "passthrough">[];
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.userManagementCallables = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
+
const activities_1 = require("./activities");
|
|
5
6
|
/**
|
|
6
7
|
* Contracts for the typed user management callables
|
|
7
8
|
* (`Placementt-Backend/functions/src/userManagement.ts`).
|
|
@@ -31,8 +32,10 @@ exports.userManagementCallables = {
|
|
|
31
32
|
*/
|
|
32
33
|
"userManagement-checkStudentActivation": {
|
|
33
34
|
request: zod_1.z.object({
|
|
34
|
-
/**
|
|
35
|
+
/** A table's "select all" as a DataViewer selection, picked students keyed
|
|
36
|
+
* by uid, or (older clients) query objects. */
|
|
35
37
|
users: zod_1.z.union([
|
|
38
|
+
activities_1.selectAllSelection,
|
|
36
39
|
zod_1.z.array(zod_1.z.object({
|
|
37
40
|
path: zod_1.z.array(zod_1.z.string()).optional(),
|
|
38
41
|
where: zod_1.z.array(zod_1.z.array(zod_1.z.unknown())).optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userManagement.js","sourceRoot":"","sources":["../../src/callables/userManagement.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;
|
|
1
|
+
{"version":3,"file":"userManagement.js","sourceRoot":"","sources":["../../src/callables/userManagement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const userManagement_1 = require("./userManagement");
|
|
4
|
+
const check = userManagement_1.userManagementCallables["userManagement-checkStudentActivation"].request;
|
|
5
|
+
describe("userManagement-checkStudentActivation users", () => {
|
|
6
|
+
it("takes a table's select all as a DataViewer selection, filters intact", () => {
|
|
7
|
+
const users = { allSelected: true, search: "", filters: [{ k: "details.year", e: "==", v: "10" }] };
|
|
8
|
+
const parsed = check.parse({ users });
|
|
9
|
+
expect(parsed.users).toEqual(users);
|
|
10
|
+
});
|
|
11
|
+
it("still takes picked students keyed by uid", () => {
|
|
12
|
+
expect(check.parse({ users: { uid1: true, uid2: true } }).users).toEqual({ uid1: true, uid2: true });
|
|
13
|
+
});
|
|
14
|
+
it("still takes query objects from older clients", () => {
|
|
15
|
+
const users = [{ path: ["users"], where: [["oId", "==", "school"]] }];
|
|
16
|
+
expect(check.parse({ users }).users).toEqual(users);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=userManagement.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userManagement.test.js","sourceRoot":"","sources":["../../src/callables/userManagement.test.ts"],"names":[],"mappings":";;AAAA,qDAAyD;AAEzD,MAAM,KAAK,GAAG,wCAAuB,CAAC,uCAAuC,CAAC,CAAC,OAAO,CAAC;AAEvF,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,KAAK,GAAG,EAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAC,CAAC,EAAC,CAAC;QAChG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACpD,MAAM,KAAK,GAAG,CAAC,EAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -6,18 +6,21 @@ import {CallableGroup} from "./types";
|
|
|
6
6
|
* (`Placementt-Backend/functions/src/activities.ts`).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
/** A table's "select all", as DataViewerSelectionBackend: its filters and any search. */
|
|
10
|
+
export const selectAllSelection = z.object({
|
|
11
|
+
allSelected: z.boolean(),
|
|
12
|
+
search: z.string().optional(),
|
|
13
|
+
filters: z.array(z.object({
|
|
14
|
+
k: z.string(),
|
|
15
|
+
e: z.string().optional(),
|
|
16
|
+
v: z.unknown(),
|
|
17
|
+
})).optional(),
|
|
18
|
+
});
|
|
19
|
+
|
|
9
20
|
/** The students picked in the student table, as DataViewerSelectionBackend:
|
|
10
21
|
* a filter (with an optional search), or a list of uids. */
|
|
11
|
-
const studentSelection = z.union([
|
|
12
|
-
|
|
13
|
-
allSelected: z.boolean(),
|
|
14
|
-
search: z.string().optional(),
|
|
15
|
-
filters: z.array(z.object({
|
|
16
|
-
k: z.string(),
|
|
17
|
-
e: z.string().optional(),
|
|
18
|
-
v: z.unknown(),
|
|
19
|
-
})).optional(),
|
|
20
|
-
}),
|
|
22
|
+
export const studentSelection = z.union([
|
|
23
|
+
selectAllSelection,
|
|
21
24
|
z.array(z.string().min(1).max(128)).max(5000),
|
|
22
25
|
]);
|
|
23
26
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {userManagementCallables} from "./userManagement";
|
|
2
|
+
|
|
3
|
+
const check = userManagementCallables["userManagement-checkStudentActivation"].request;
|
|
4
|
+
|
|
5
|
+
describe("userManagement-checkStudentActivation users", () => {
|
|
6
|
+
it("takes a table's select all as a DataViewer selection, filters intact", () => {
|
|
7
|
+
const users = {allSelected: true, search: "", filters: [{k: "details.year", e: "==", v: "10"}]};
|
|
8
|
+
const parsed = check.parse({users});
|
|
9
|
+
expect(parsed.users).toEqual(users);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it("still takes picked students keyed by uid", () => {
|
|
13
|
+
expect(check.parse({users: {uid1: true, uid2: true}}).users).toEqual({uid1: true, uid2: true});
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it("still takes query objects from older clients", () => {
|
|
17
|
+
const users = [{path: ["users"], where: [["oId", "==", "school"]]}];
|
|
18
|
+
expect(check.parse({users}).users).toEqual(users);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {z} from "zod";
|
|
2
2
|
import {CallableGroup} from "./types";
|
|
3
|
+
import {selectAllSelection} from "./activities";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Contracts for the typed user management callables
|
|
@@ -30,8 +31,10 @@ export const userManagementCallables = {
|
|
|
30
31
|
*/
|
|
31
32
|
"userManagement-checkStudentActivation": {
|
|
32
33
|
request: z.object({
|
|
33
|
-
/**
|
|
34
|
+
/** A table's "select all" as a DataViewer selection, picked students keyed
|
|
35
|
+
* by uid, or (older clients) query objects. */
|
|
34
36
|
users: z.union([
|
|
37
|
+
selectAllSelection,
|
|
35
38
|
z.array(z.object({
|
|
36
39
|
path: z.array(z.string()).optional(),
|
|
37
40
|
where: z.array(z.array(z.unknown())).optional(),
|