comparison Platforms/Wasm/WasmWebService.cpp @ 309:14ef1227120f am-callable-and-promise

web services: better handling of failures
author am@osimis.io
date Fri, 28 Sep 2018 15:02:43 +0200
parents ed1a4302154f
children aad37d0b6407
comparison
equal deleted inserted replaced
307:be2660b6e40a 309:14ef1227120f
9 9
10 extern void WasmWebService_GetAsync(void* callableSuccess, 10 extern void WasmWebService_GetAsync(void* callableSuccess,
11 void* callableFailure, 11 void* callableFailure,
12 const char* uri, 12 const char* uri,
13 const char* headersInJsonString, 13 const char* headersInJsonString,
14 void* payload); 14 void* payload,
15 unsigned int timeoutInSeconds);
15 16
16 extern void WasmWebService_PostAsync(void* callableSuccess, 17 extern void WasmWebService_PostAsync(void* callableSuccess,
17 void* callableFailure, 18 void* callableFailure,
18 const char* uri, 19 const char* uri,
19 const char* headersInJsonString, 20 const char* headersInJsonString,
20 const void* body, 21 const void* body,
21 size_t bodySize, 22 size_t bodySize,
22 void* payload); 23 void* payload,
24 unsigned int timeoutInSeconds);
23 25
24 26
25 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifyError(void* failureCallable, 27 void EMSCRIPTEN_KEEPALIVE WasmWebService_NotifyError(void* failureCallable,
26 const char* uri, 28 const char* uri,
27 void* payload) 29 void* payload)
98 writer->write(jsonHeaders, &outputStr); 100 writer->write(jsonHeaders, &outputStr);
99 output = outputStr.str(); 101 output = outputStr.str();
100 } 102 }
101 103
102 void WasmWebService::PostAsync(const std::string& relativeUri, 104 void WasmWebService::PostAsync(const std::string& relativeUri,
103 const Headers& headers, 105 const Headers& headers,
104 const std::string& body, 106 const std::string& body,
105 Orthanc::IDynamicObject* payload, 107 Orthanc::IDynamicObject* payload,
106 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, 108 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
107 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable) 109 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
110 unsigned int timeoutInSeconds)
108 { 111 {
109 std::string uri = baseUri_ + relativeUri; 112 std::string uri = baseUri_ + relativeUri;
110 std::string headersInJsonString; 113 std::string headersInJsonString;
111 ToJsonString(headersInJsonString, headers); 114 ToJsonString(headersInJsonString, headers);
112 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), 115 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(),
113 body.c_str(), body.size(), payload); 116 body.c_str(), body.size(), payload, timeoutInSeconds);
114 } 117 }
115 118
116 void WasmWebService::GetAsync(const std::string& relativeUri, 119 void WasmWebService::GetAsync(const std::string& relativeUri,
117 const Headers& headers, 120 const Headers& headers,
118 Orthanc::IDynamicObject* payload, 121 Orthanc::IDynamicObject* payload,
119 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, 122 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
120 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable) 123 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
124 unsigned int timeoutInSeconds)
121 { 125 {
122 std::string uri = baseUri_ + relativeUri; 126 std::string uri = baseUri_ + relativeUri;
123 std::string headersInJsonString; 127 std::string headersInJsonString;
124 ToJsonString(headersInJsonString, headers); 128 ToJsonString(headersInJsonString, headers);
125 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload); 129 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload, timeoutInSeconds);
126 } 130 }
127 131
128 } 132 }