Skip to content

Commit 7b5f838

Browse files
committed
#389 Fix the calling of the action to only once, add error catch for parameters fetch call
1 parent 0c90dae commit 7b5f838

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

webapp/redux/middleware/middleware.js

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ export default (store) => (next) => (action) => {
163163
break;
164164
}
165165
case CREATE_NETWORK: {
166+
let allParams = true;
166167
ExperimentsApi.getParameters()
167168
.then((params) => {
168169
const flattened = Utils.flatten(params);
@@ -176,22 +177,23 @@ export default (store) => (next) => (action) => {
176177
}
177178
return false;
178179
});
179-
next(setExperimentParameters({
180-
parameters: filteredKeys,
181-
}));
182180
const expData = store.getState().experiments;
183181
expData?.inDesign?.params?.map((param) => {
184-
if(filteredKeys.includes(param.mapsTo)) {
185-
instantiateNetwork({})
186-
.then(toNetworkCallback(false), pythonErrorCallback);
187-
} else {
182+
if(!filteredKeys.includes(param.mapsTo)) {
188183
pythonErrorCallback({errorDetails: 'Missing Parameters', errorMessage: 'Error'})
184+
allParams = false;
185+
return;
189186
}
190-
})
191-
});
187+
});
188+
if(allParams) {
189+
instantiateNetwork({})
190+
.then(toNetworkCallback(false), pythonErrorCallback);
191+
}
192+
}, pythonErrorCallback);
192193
break;
193194
}
194195
case CREATE_SIMULATE_NETWORK: {
196+
let allParams = true;
195197
ExperimentsApi.getParameters()
196198
.then((params) => {
197199
const flattened = Utils.flatten(params);
@@ -205,22 +207,23 @@ export default (store) => (next) => (action) => {
205207
}
206208
return false;
207209
});
208-
next(setExperimentParameters({
209-
parameters: filteredKeys,
210-
}));
211210
const expData = store.getState().experiments;
212211
expData?.inDesign?.params?.map((param) => {
213-
if(filteredKeys.includes(param.mapsTo)) {
214-
simulateNetwork({ allTrials: false })
215-
.then(toNetworkCallback(false), pythonErrorCallback);
216-
} else {
212+
if(!filteredKeys.includes(param.mapsTo)) {
217213
pythonErrorCallback({errorDetails: 'Missing Parameters', errorMessage: 'Error'})
214+
allParams = false;
215+
return;
218216
}
219-
})
220-
});
217+
});
218+
if(allParams) {
219+
simulateNetwork({ allTrials: false })
220+
.then(toNetworkCallback(false), pythonErrorCallback);
221+
}
222+
}, pythonErrorCallback);
221223
break;
222224
}
223225
case SIMULATE_NETWORK:
226+
let allParams = true;
224227
ExperimentsApi.getParameters()
225228
.then((params) => {
226229
const flattened = Utils.flatten(params);
@@ -234,19 +237,19 @@ export default (store) => (next) => (action) => {
234237
}
235238
return false;
236239
});
237-
next(setExperimentParameters({
238-
parameters: filteredKeys,
239-
}));
240240
const expData = store.getState().experiments;
241241
expData?.inDesign?.params?.map((param) => {
242-
if(filteredKeys.includes(param.mapsTo)) {
243-
simulateNetwork({ allTrials: action.payload, usePrevInst: false })
244-
.then(toNetworkCallback(false), pythonErrorCallback);
245-
} else {
242+
if(!filteredKeys.includes(param.mapsTo)) {
246243
pythonErrorCallback({errorDetails: 'Missing Parameters', errorMessage: 'Error'})
244+
allParams = false;
245+
return;
247246
}
248-
})
249-
});
247+
});
248+
if(allParams) {
249+
simulateNetwork({ allTrials: action.payload, usePrevInst: false })
250+
.then(toNetworkCallback(false), pythonErrorCallback);
251+
}
252+
}, pythonErrorCallback);
250253
break;
251254
case PYTHON_CALL: {
252255
const callback = (response) => {

0 commit comments

Comments
 (0)