comparison Platforms/Wasm/WasmWebService.cpp @ 418:c23df8b3433b

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 15 Nov 2018 18:32:48 +0100
parents aee3d7941c9b
children 3a8bcc45c221
comparison
equal deleted inserted replaced
417:aee3d7941c9b 418:c23df8b3433b
67 Apply(OrthancStone::IWebService::HttpRequestSuccessMessage(uri, body, bodySize, headers, 67 Apply(OrthancStone::IWebService::HttpRequestSuccessMessage(uri, body, bodySize, headers,
68 reinterpret_cast<Orthanc::IDynamicObject*>(payload))); 68 reinterpret_cast<Orthanc::IDynamicObject*>(payload)));
69 } 69 }
70 } 70 }
71 71
72 void EMSCRIPTEN_KEEPALIVE WasmWebService_SetBaseUri(const char* baseUri)
73 {
74 OrthancStone::WasmWebService::GetInstance().SetBaseUri(baseUri);
75 }
76
77 #ifdef __cplusplus 72 #ifdef __cplusplus
78 } 73 }
79 #endif 74 #endif
80 75
81 76
82 77
83 namespace OrthancStone 78 namespace OrthancStone
84 { 79 {
85 MessageBroker* WasmWebService::broker_ = NULL; 80 MessageBroker* WasmWebService::broker_ = NULL;
86
87 void WasmWebService::SetBaseUri(const std::string baseUri)
88 {
89 // Make sure the base url ends with "/"
90 if (baseUri.empty() ||
91 baseUri[baseUri.size() - 1] != '/')
92 {
93 baseUri_ = baseUri + "/";
94 }
95 else
96 {
97 baseUri_ = baseUri;
98 }
99 }
100 81
101 void ToJsonString(std::string& output, const IWebService::HttpHeaders& headers) 82 void ToJsonString(std::string& output, const IWebService::HttpHeaders& headers)
102 { 83 {
103 Json::Value jsonHeaders; 84 Json::Value jsonHeaders;
104 for (IWebService::HttpHeaders::const_iterator it = headers.begin(); it != headers.end(); it++ ) 85 for (IWebService::HttpHeaders::const_iterator it = headers.begin(); it != headers.end(); it++ )
120 Orthanc::IDynamicObject* payload, 101 Orthanc::IDynamicObject* payload,
121 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, 102 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
122 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, 103 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
123 unsigned int timeoutInSeconds) 104 unsigned int timeoutInSeconds)
124 { 105 {
125 std::string uri = baseUri_ + relativeUri;
126 std::string headersInJsonString; 106 std::string headersInJsonString;
127 ToJsonString(headersInJsonString, headers); 107 ToJsonString(headersInJsonString, headers);
128 WasmWebService_PostAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), 108 WasmWebService_PostAsync(successCallable, failureCallable, relativeUri.c_str(), headersInJsonString.c_str(),
129 body.c_str(), body.size(), payload, timeoutInSeconds); 109 body.c_str(), body.size(), payload, timeoutInSeconds);
130 } 110 }
131 111
132 void WasmWebService::DeleteAsync(const std::string& relativeUri, 112 void WasmWebService::DeleteAsync(const std::string& relativeUri,
133 const HttpHeaders& headers, 113 const HttpHeaders& headers,
134 Orthanc::IDynamicObject* payload, 114 Orthanc::IDynamicObject* payload,
135 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, 115 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
136 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, 116 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
137 unsigned int timeoutInSeconds) 117 unsigned int timeoutInSeconds)
138 { 118 {
139 std::string uri = baseUri_ + relativeUri;
140 std::string headersInJsonString; 119 std::string headersInJsonString;
141 ToJsonString(headersInJsonString, headers); 120 ToJsonString(headersInJsonString, headers);
142 WasmWebService_DeleteAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), 121 WasmWebService_DeleteAsync(successCallable, failureCallable, relativeUri.c_str(), headersInJsonString.c_str(),
143 payload, timeoutInSeconds); 122 payload, timeoutInSeconds);
144 } 123 }
145 124
146 void WasmWebService::GetAsync(const std::string& relativeUri, 125 void WasmWebService::GetAsync(const std::string& relativeUri,
147 const HttpHeaders& headers, 126 const HttpHeaders& headers,
148 Orthanc::IDynamicObject* payload, 127 Orthanc::IDynamicObject* payload,
149 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable, 128 MessageHandler<IWebService::HttpRequestSuccessMessage>* successCallable,
150 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable, 129 MessageHandler<IWebService::HttpRequestErrorMessage>* failureCallable,
151 unsigned int timeoutInSeconds) 130 unsigned int timeoutInSeconds)
152 { 131 {
153 std::string uri = baseUri_ + relativeUri;
154 std::string headersInJsonString; 132 std::string headersInJsonString;
155 ToJsonString(headersInJsonString, headers); 133 ToJsonString(headersInJsonString, headers);
156 WasmWebService_GetAsync(successCallable, failureCallable, uri.c_str(), headersInJsonString.c_str(), payload, timeoutInSeconds); 134 WasmWebService_GetAsync(successCallable, failureCallable, relativeUri.c_str(),
135 headersInJsonString.c_str(), payload, timeoutInSeconds);
157 } 136 }
158 } 137 }