comparison OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 1358:62d2d35b725e

cont
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 13 May 2015 17:56:27 +0200
parents ab9f3d5910bd
children 0649c5aef34a
comparison
equal deleted inserted replaced
1357:216db29c5aa9 1358:62d2d35b725e
33 #include "../PrecompiledHeadersServer.h" 33 #include "../PrecompiledHeadersServer.h"
34 #include "OrthancRestApi.h" 34 #include "OrthancRestApi.h"
35 35
36 #include "../ServerToolbox.h" 36 #include "../ServerToolbox.h"
37 #include "../FromDcmtkBridge.h" 37 #include "../FromDcmtkBridge.h"
38 #include "../ExactResourceFinder.h" 38 #include "../ResourceFinder.h"
39 39
40 #include <glog/logging.h> 40 #include <glog/logging.h>
41 41
42 namespace Orthanc 42 namespace Orthanc
43 { 43 {
848 } 848 }
849 849
850 850
851 static void Find(RestApiPostCall& call) 851 static void Find(RestApiPostCall& call)
852 { 852 {
853 ServerIndex& index = OrthancRestApi::GetIndex(call); 853 ServerContext& context = OrthancRestApi::GetContext(call);
854 854
855 Json::Value request; 855 Json::Value request;
856 if (call.ParseJsonRequest(request) && 856 if (call.ParseJsonRequest(request) &&
857 request.type() == Json::objectValue && 857 request.type() == Json::objectValue &&
858 request.isMember("Level") && 858 request.isMember("Level") &&
860 request["Level"].type() == Json::stringValue && 860 request["Level"].type() == Json::stringValue &&
861 request["Query"].type() == Json::objectValue) 861 request["Query"].type() == Json::objectValue)
862 { 862 {
863 std::string level = request["Level"].asString(); 863 std::string level = request["Level"].asString();
864 864
865 ExactResourceFinder finder(index); 865 ResourceFinder finder(context);
866 finder.SetLevel(StringToResourceType(level.c_str())); 866 finder.SetLevel(StringToResourceType(level.c_str()));
867
868 if (request.isMember("CaseSensitive"))
869 {
870 finder.SetCaseSensitive(request["CaseSensitive"].asBool());
871 }
872 867
873 bool expand = false; 868 bool expand = false;
874 if (request.isMember("Expand")) 869 if (request.isMember("Expand"))
875 { 870 {
876 expand = request["Expand"].asBool(); 871 expand = request["Expand"].asBool();
872 }
873
874 /*if (request.isMember("CaseSensitive"))
875 {
876 finder.SetCaseSensitive(request["CaseSensitive"].asBool());
877 } 877 }
878 878
879 Json::Value::Members members = request["Query"].getMemberNames(); 879 Json::Value::Members members = request["Query"].getMemberNames();
880 for (size_t i = 0; i < members.size(); i++) 880 for (size_t i = 0; i < members.size(); i++)
881 { 881 {
883 { 883 {
884 throw OrthancException(ErrorCode_BadRequest); 884 throw OrthancException(ErrorCode_BadRequest);
885 } 885 }
886 886
887 finder.AddTag(members[i], request["Query"][members[i]].asString()); 887 finder.AddTag(members[i], request["Query"][members[i]].asString());
888 } 888 }*/
889 889
890 std::list<std::string> resources; 890 std::list<std::string> resources;
891 finder.Apply(resources); 891 finder.Apply(resources);
892 AnswerListOfResources(call.GetOutput(), index, resources, finder.GetLevel(), expand); 892 AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, finder.GetLevel(), expand);
893 } 893 }
894 else 894 else
895 { 895 {
896 throw OrthancException(ErrorCode_BadRequest); 896 throw OrthancException(ErrorCode_BadRequest);
897 } 897 }