@@ -7,6 +7,16 @@ module ReactDOM = React.Dom
7
7
8
8
type paramState = Executed | Executing | Canceled | Error ;
9
9
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
+
10
20
[@ react . component ]
11
21
let make = (~parameters, ~history, ~setHistory) => {
12
22
@@ -22,8 +32,15 @@ let make = (~parameters, ~history, ~setHistory) => {
22
32
};
23
33
24
34
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 );
27
44
28
45
let /* parameterList*/ _ = ParameterUtils . constructParameters(value);
29
46
let headers = Header . init_with("Content-Type" , "application/json" );
@@ -34,26 +51,54 @@ let make = (~parameters, ~history, ~setHistory) => {
34
51
\" params\" : {\" reset\" : false}
35
52
}"
36
53
|> Body . of_string;
37
- let url = "127.0.0.1:8001" |> Uri . of_string;
38
54
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
41
64
/* body |> Body.to_string >|= (b) => {
42
65
Util.log(b);
43
66
};*/
44
- Lwt . return () ;
67
+
68
+ if (code < 200 || code >= 400 ) {
69
+ Lwt . return(Error )
70
+ } else {
71
+ Lwt . return(Executed )
72
+ };
45
73
};
46
74
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
+
48
93
};
49
94
50
95
let on_cancel = () => {
51
96
let lastElemIndex = Array . length(history) - 1 ;
52
97
let (param , time , _ ) = Array . get(history, lastElemIndex);
53
98
54
99
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 );
57
102
58
103
setDisableCancel(_ => true );
59
104
}
0 commit comments