comparison Plugins/Engine/OrthancPlugins.cpp @ 1780:94990da8710e

OrthancPluginRestApiGet2
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 13 Nov 2015 15:06:45 +0100
parents 8790488ae98b
children 30e97a1f4093
comparison
equal deleted inserted replaced
1779:c24dac8c1d4e 1780:94990da8710e
817 throw OrthancException(ErrorCode_BadRequest); 817 throw OrthancException(ErrorCode_BadRequest);
818 } 818 }
819 } 819 }
820 820
821 821
822 void OrthancPlugins::RestApiGet2(const void* parameters)
823 {
824 const _OrthancPluginRestApiGet2& p =
825 *reinterpret_cast<const _OrthancPluginRestApiGet2*>(parameters);
826
827 LOG(INFO) << "Plugin making REST GET call on URI " << p.uri
828 << (p.afterPlugins ? " (after plugins)" : " (built-in API)");
829
830 IHttpHandler::Arguments headers;
831
832 for (uint32_t i = 0; i < p.headersCount; i++)
833 {
834 headers[p.headersKeys[i]] = p.headersValues[i];
835 }
836
837 CheckContextAvailable();
838 IHttpHandler& handler = pimpl_->context_->GetHttpHandler().RestrictToOrthancRestApi(!p.afterPlugins);
839
840 std::string result;
841 if (HttpToolbox::SimpleGet(result, handler, RequestOrigin_Plugins, p.uri, headers))
842 {
843 CopyToMemoryBuffer(*p.target, result);
844 }
845 else
846 {
847 throw OrthancException(ErrorCode_BadRequest);
848 }
849 }
850
851
822 void OrthancPlugins::RestApiPostPut(bool isPost, 852 void OrthancPlugins::RestApiPostPut(bool isPost,
823 const void* parameters, 853 const void* parameters,
824 bool afterPlugins) 854 bool afterPlugins)
825 { 855 {
826 const _OrthancPluginRestApiPostPut& p = 856 const _OrthancPluginRestApiPostPut& p =
1393 1423
1394 case _OrthancPluginService_RestApiGetAfterPlugins: 1424 case _OrthancPluginService_RestApiGetAfterPlugins:
1395 RestApiGet(parameters, true); 1425 RestApiGet(parameters, true);
1396 return true; 1426 return true;
1397 1427
1428 case _OrthancPluginService_RestApiGet2:
1429 RestApiGet2(parameters);
1430 return true;
1431
1398 case _OrthancPluginService_RestApiPost: 1432 case _OrthancPluginService_RestApiPost:
1399 RestApiPostPut(true, parameters, false); 1433 RestApiPostPut(true, parameters, false);
1400 return true; 1434 return true;
1401 1435
1402 case _OrthancPluginService_RestApiPostAfterPlugins: 1436 case _OrthancPluginService_RestApiPostAfterPlugins: