Mercurial > hg > orthanc
diff OrthancServer/OrthancRestApi/OrthancRestResources.cpp @ 2304:563bf878407a
Argument "Since" in URI "/tools/find" (related to issue #53)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Jul 2017 17:24:31 +0200 |
parents | e002430baa41 |
children | 7284093111b0 |
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Mon Jul 10 11:31:48 2017 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestResources.cpp Tue Jul 11 17:24:31 2017 +0200 @@ -1154,7 +1154,8 @@ request["Level"].type() == Json::stringValue && request["Query"].type() == Json::objectValue && (!request.isMember("CaseSensitive") || request["CaseSensitive"].type() == Json::booleanValue) && - (!request.isMember("Limit") || request["Limit"].type() == Json::intValue)) + (!request.isMember("Limit") || request["Limit"].type() == Json::intValue) && + (!request.isMember("Since") || request["Since"].type() == Json::intValue)) { bool expand = false; if (request.isMember("Expand")) @@ -1180,6 +1181,18 @@ limit = static_cast<size_t>(tmp); } + size_t since = 0; + if (request.isMember("Since")) + { + int tmp = request["Since"].asInt(); + if (tmp < 0) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + + since = static_cast<size_t>(tmp); + } + std::string level = request["Level"].asString(); LookupResource query(StringToResourceType(level.c_str())); @@ -1198,8 +1211,9 @@ } std::list<std::string> resources; - context.Apply(resources, query, limit); - AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand); + context.Apply(resources, query, since, limit); + AnswerListOfResources(call.GetOutput(), context.GetIndex(), + resources, query.GetLevel(), expand); } else {