Skip to content

Commit 28977ad

Browse files
committed
Impl correct success/error indication for rerun
1 parent 2389a06 commit 28977ad

File tree

1 file changed

+54
-9
lines changed

1 file changed

+54
-9
lines changed

src/ui/panel/ParameterView.re

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ module ReactDOM = React.Dom
77

88
type paramState = Executed | Executing | Canceled | Error;
99

10+
// For debugging purposes and potential further use
11+
let paramState_to_string = (p: paramState) => {
12+
switch (p) {
13+
| Executed => "Executed";
14+
| Executing => "Executing";
15+
| Canceled => "Canceled";
16+
| Error => "Error";
17+
};
18+
};
19+
1020
[@react.component]
1121
let make = (~parameters, ~history, ~setHistory) => {
1222

@@ -22,8 +32,15 @@ let make = (~parameters, ~history, ~setHistory) => {
2232
};
2333

2434
let on_submit = () => {
25-
let newHistory = Array.append(history, [|(value, Time.getLocalTime(), Executing)|])
26-
setHistory(_ => newHistory);
35+
history |> Array.length |> string_of_int |> Util.log;
36+
37+
let time = Time.getLocalTime();
38+
let state = ref(Executing);
39+
let element = (value, time, state.contents);
40+
41+
let new_history = Array.append(history, [|element|]);
42+
setHistory(_ => new_history);
43+
setDisableCancel(_ => false);
2744

2845
let /*parameterList*/ _ = ParameterUtils.constructParameters(value);
2946
let headers = Header.init_with("Content-Type", "application/json");
@@ -34,26 +51,54 @@ let make = (~parameters, ~history, ~setHistory) => {
3451
\"params\": {\"reset\": false}
3552
}"
3653
|> Body.of_string;
37-
let url = "127.0.0.1:8001" |> Uri.of_string;
3854

39-
let _ = Client.put(url, ~body=body, ~headers=headers) >>= ((res, _ /*body*/)) => {
40-
res |> Response.status |> Code.code_of_status |> string_of_int |> Util.log;
55+
let scheme = "http";
56+
let host = "localhost";
57+
let port = 8080;
58+
let path = "/api/analyze";
59+
60+
let uri = Printf.sprintf("%s://%s:%d%s", scheme, host, port, path) |> Uri.of_string;
61+
62+
let new_state = Client.post(uri, ~body=body, ~headers=headers) >>= ((res, _ /*body*/)) => {
63+
let code = res |> Response.status |> Code.code_of_status
4164
/*body |> Body.to_string >|= (b) => {
4265
Util.log(b);
4366
};*/
44-
Lwt.return ();
67+
68+
if (code < 200 || code >= 400) {
69+
Lwt.return(Error)
70+
} else {
71+
Lwt.return(Executed)
72+
};
4573
};
4674

47-
setDisableCancel(_ => false);
75+
let res_state = switch (new_state |> Lwt.poll) {
76+
| Some(p) => p
77+
| None => Error
78+
};
79+
80+
let lastElemIndexInHistory = Array.length(new_history) - 1;
81+
let lastElement = lastElemIndexInHistory |> Array.get(new_history);
82+
83+
if (element == lastElement) {
84+
let intermediateHistory = lastElemIndexInHistory |> Array.sub(new_history, 0);
85+
86+
let new_element = (value, time, res_state);
87+
88+
let new_history = Array.append(intermediateHistory, [|new_element|]);
89+
setHistory(_ => new_history);
90+
setDisableCancel(_ => true);
91+
}
92+
4893
};
4994

5095
let on_cancel = () => {
5196
let lastElemIndex = Array.length(history) - 1;
5297
let (param, time, _) = Array.get(history, lastElemIndex);
5398

5499
let intermediateHistory = Array.sub(history, 0, lastElemIndex);
55-
let newHistory = Array.append(intermediateHistory, [|(param, time, Canceled)|]);
56-
setHistory(_ => newHistory);
100+
let new_history = Array.append(intermediateHistory, [|(param, time, Canceled)|]);
101+
setHistory(_ => new_history);
57102

58103
setDisableCancel(_ => true);
59104
}

0 commit comments

Comments
 (0)