Mercurial > hg > orthanc
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 } |