瀏覽代碼

:recycle: tweaking response schemas

neo
toj 2 年之前
父節點
當前提交
a957f45c3f

+ 26
- 0
backend/lib/schemas/groupings.js 查看文件

@@ -0,0 +1,26 @@
1
+const Joi = require('joi')
2
+
3
+const profileSchema = require('./profiles')
4
+
5
+const validator = Joi.object({
6
+    grouping_id: Joi.number(),
7
+    grouping_name: Joi.string(),
8
+    grouping_type: Joi.string(),
9
+    is_paired: Joi.boolean(),
10
+    profile: profileSchema.validator,
11
+}).label('grouping__single_validator')
12
+
13
+const list = Joi.array().items(validator).label('grouping__list_validator')
14
+
15
+const single = Joi.object({
16
+    grouping_id: Joi.number(),
17
+    grouping_name: Joi.string(),
18
+    grouping_type: Joi.string(),
19
+    is_paired: Joi.boolean(),
20
+}).label('grouping__single')
21
+
22
+module.exports = {
23
+    single,
24
+    validator,
25
+    list,
26
+}

+ 1
- 1
backend/lib/schemas/profile.js 查看文件

@@ -19,7 +19,7 @@ const validator = Joi.object({
19 19
     profile_description: Joi.string().allow(null, ''),
20 20
 }).label('profile__single_validator')
21 21
 
22
-const list = Joi.array().items(validator).label('profile__list')
22
+const list = Joi.array().items(validator).label('profile__list_validator')
23 23
 
24 24
 // single is used to define database models
25 25
 const single = Joi.object({

+ 18
- 11
backend/lib/schemas/response-keys.js 查看文件

@@ -1,17 +1,24 @@
1
-const singleResponseKey = Joi.object({
1
+const Joi = require('joi')
2
+
3
+const validator = Joi.object({
2 4
     response_key_id: Joi.number().required(),
3 5
     response_key_category: Joi.string().required(),
4 6
     response_key_prompt: Joi.string().required(),
5
-    response_key_description: Joi.any(),
6
-    aspect: Joi.string().allow(null, ''),
7
-    category: Joi.string().allow(null, ''),
8
-    placeholder: Joi.string().allow(null, ''),
9
-    invalidInputPrompt: Joi.string().allow(null, ''),
10
-}).label('question_single')
7
+    response_key_description: Joi.any()
8
+}).label('question__single_validator')
9
+
10
+const list = Joi.array().items(validator).label('question__list_validator')
11
+
12
+const single = Joi.object({
13
+    response_key_id: Joi.number().required(),
14
+    response_key_category: Joi.string().required(),
15
+    response_key_prompt: Joi.string().required(),
16
+    response_key_description: Joi.any()
17
+}).label('question__single')
18
+
11 19
 
12 20
 module.exports = {
13
-    single: singleResponse,
14
-    list: Joi.array().items(singleResponse).label('response_list'),
15
-    key: singleResponseKey,
16
-    keys: Joi.array().items(singleResponseKey).label('question_list'),
21
+    single,
22
+    validator,
23
+    list
17 24
 }

+ 13
- 16
backend/lib/schemas/responses.js 查看文件

@@ -1,26 +1,23 @@
1 1
 const Joi = require('joi')
2 2
 
3
-const singleResponse = Joi.object({
3
+const validator = Joi.object({
4 4
     response_key_id: Joi.number(),
5 5
     response_id: Joi.number(),
6 6
     profile_id: Joi.number(),
7 7
     val: Joi.string().allow(null, ''),
8
-}).label('response_single')
8
+}).label('response__single_validator')
9 9
 
10
-const singleResponseKey = Joi.object({
11
-    response_key_id: Joi.number().required(),
12
-    response_key_category: Joi.string().required(),
13
-    response_key_prompt: Joi.string().required(),
14
-    response_key_description: Joi.any(),
15
-    aspect: Joi.string().allow(null, ''),
16
-    category: Joi.string().allow(null, ''),
17
-    placeholder: Joi.string().allow(null, ''),
18
-    invalidInputPrompt: Joi.string().allow(null, ''),
19
-}).label('question_single')
10
+const list = Joi.array().items(validator).label('response__list_validator')
11
+
12
+const single = Joi.object({
13
+    response_key_id: Joi.number(),
14
+    response_id: Joi.number(),
15
+    profile_id: Joi.number(),
16
+    val: Joi.string().allow(null, ''),
17
+}).label('response__single')
20 18
 
21 19
 module.exports = {
22
-    single: singleResponse,
23
-    list: Joi.array().items(singleResponse).label('response_list'),
24
-    key: singleResponseKey,
25
-    keys: Joi.array().items(singleResponseKey).label('question_list'),
20
+    single,
21
+    validator,
22
+    list,
26 23
 }

+ 1
- 1
backend/lib/schemas/tag-associations.js 查看文件

@@ -14,7 +14,7 @@ const validator = Joi.object({
14 14
     tag_id: Joi.number().required(),
15 15
 }).label('association__single_validator')
16 16
 
17
-const list = Joi.array().items(single).label('association__list')
17
+const list = Joi.array().items(single).label('association__list_validator')
18 18
 
19 19
 // single is used to define database models
20 20
 const single = Joi.object({

+ 2
- 2
backend/lib/schemas/tags.js 查看文件

@@ -13,7 +13,7 @@ const validator = Joi.object({
13 13
     tag_description: Joi.string(),
14 14
 }).label('tag__single_validator')
15 15
 
16
-const list = Joi.array().items(validator).label('tag__list')
16
+const list = Joi.array().items(validator).label('tag__list_validator')
17 17
 
18 18
 // single is used to define database models
19 19
 const single = Joi.object({
@@ -26,5 +26,5 @@ const single = Joi.object({
26 26
 module.exports = {
27 27
     single,
28 28
     validator,
29
-    list
29
+    list,
30 30
 }

Loading…
取消
儲存