@@ -16,8 +16,15 @@ def reduce_dataset(dataset, session_type):
16
16
# variables
17
17
list_error = []
18
18
19
- # web-interface: validate, and restructure dataset
20
- if dataset ['data' ]['dataset' ]['file_upload' ]:
19
+ # web-interface: validate, and restructure 'file-upload' dataset
20
+ if (
21
+ dataset ['data' ].get ('dataset' , None ) and
22
+ dataset ['data' ]['dataset' ].get ('file_upload' , None ) and
23
+ dataset ['data' ]['settings' ].get (
24
+ 'dataset_type' , None ) == 'file_upload'
25
+ ):
26
+
27
+ # validate and restructure
21
28
validator = Validate_File_Extension (
22
29
dataset ,
23
30
session_type
@@ -29,13 +36,91 @@ def reduce_dataset(dataset, session_type):
29
36
adjusted_dataset ['error' ]
30
37
)
31
38
32
- # programmatic-interface: validate, do not restructure
33
- elif dataset ['data' ]['dataset' ]['json_string' ]:
39
+ # web-interface: validate, and restructure url dataset
40
+ elif (
41
+ dataset ['data' ]['settings' ].get ('dataset[]' , None ) and
42
+ dataset ['data' ]['settings' ].get (
43
+ 'dataset_type' , None ) == 'dataset_url'
44
+ ):
45
+
46
+ # define 'file_upload' since doesn't exist
47
+ data = dataset ['data' ]
48
+ data ['dataset' ] = {}
49
+ if type (data ['settings' ]['dataset[]' ]) is list :
50
+ data ['dataset' ]['file_upload' ] = data ['settings' ]['dataset[]' ]
51
+ else :
52
+ data ['dataset' ]['file_upload' ] = []
53
+ data ['dataset' ]['file_upload' ].append (
54
+ data ['settings' ]['dataset[]' ]
55
+ )
56
+
57
+ # validate and restructure
58
+ validator = Validate_File_Extension (
59
+ {
60
+ 'data' : {
61
+ 'dataset' : {
62
+ 'file_upload' : data ['dataset' ]['file_upload' ],
63
+ 'type' : data ['settings' ]['dataset_type' ],
64
+ }
65
+ },
66
+ },
67
+ session_type
68
+ )
69
+ adjusted_dataset = validator .validate ()
70
+
71
+ if adjusted_dataset ['error' ]:
72
+ list_error .append (
73
+ adjusted_dataset ['error' ]
74
+ )
75
+
76
+ # programmatic-interface: validate, do not restructure file upload
77
+ elif (
78
+ dataset ['data' ]['dataset' ].get ('json_string' , None ) and
79
+ dataset ['data' ]['settings' ].get (
80
+ 'dataset_type' , None ) == 'file_upload'
81
+ ):
82
+
34
83
adjusted_dataset = dataset ['data' ]
35
84
36
85
if dataset ['error' ]:
37
86
list_error .append (adjusted_dataset ['error' ])
38
87
88
+ # programmatic-interface: validate, and restructure url dataset
89
+ elif (
90
+ dataset ['data' ]['dataset' ].get ('json_string' , None ) and
91
+ dataset ['data' ]['settings' ].get (
92
+ 'dataset_type' , None ) == 'dataset_url'
93
+ ):
94
+
95
+ # define 'file_upload' since doesn't exist
96
+ data = dataset ['data' ]
97
+ if type (data ['dataset' ]['json_string' ]) is list :
98
+ data ['dataset' ]['file_upload' ] = data ['dataset' ]['json_string' ]
99
+ else :
100
+ data ['dataset' ]['file_upload' ] = []
101
+ data ['dataset' ]['file_upload' ].append (
102
+ data ['dataset' ]['json_string' ]
103
+ )
104
+
105
+ # validate and restructure
106
+ validator = Validate_File_Extension (
107
+ {
108
+ 'data' : {
109
+ 'dataset' : {
110
+ 'file_upload' : data ['dataset' ]['file_upload' ],
111
+ 'type' : data ['settings' ]['dataset_type' ],
112
+ }
113
+ },
114
+ },
115
+ session_type
116
+ )
117
+ adjusted_dataset = validator .validate ()
118
+
119
+ if adjusted_dataset ['error' ]:
120
+ list_error .append (
121
+ adjusted_dataset ['error' ]
122
+ )
123
+
39
124
# return
40
125
if list_error :
41
126
return {'dataset' : None , 'error' : list_error }
0 commit comments