Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
2303:692527245856 | 2304:563bf878407a |
---|---|
1152 request.isMember("Level") && | 1152 request.isMember("Level") && |
1153 request.isMember("Query") && | 1153 request.isMember("Query") && |
1154 request["Level"].type() == Json::stringValue && | 1154 request["Level"].type() == Json::stringValue && |
1155 request["Query"].type() == Json::objectValue && | 1155 request["Query"].type() == Json::objectValue && |
1156 (!request.isMember("CaseSensitive") || request["CaseSensitive"].type() == Json::booleanValue) && | 1156 (!request.isMember("CaseSensitive") || request["CaseSensitive"].type() == Json::booleanValue) && |
1157 (!request.isMember("Limit") || request["Limit"].type() == Json::intValue)) | 1157 (!request.isMember("Limit") || request["Limit"].type() == Json::intValue) && |
1158 (!request.isMember("Since") || request["Since"].type() == Json::intValue)) | |
1158 { | 1159 { |
1159 bool expand = false; | 1160 bool expand = false; |
1160 if (request.isMember("Expand")) | 1161 if (request.isMember("Expand")) |
1161 { | 1162 { |
1162 expand = request["Expand"].asBool(); | 1163 expand = request["Expand"].asBool(); |
1178 } | 1179 } |
1179 | 1180 |
1180 limit = static_cast<size_t>(tmp); | 1181 limit = static_cast<size_t>(tmp); |
1181 } | 1182 } |
1182 | 1183 |
1184 size_t since = 0; | |
1185 if (request.isMember("Since")) | |
1186 { | |
1187 int tmp = request["Since"].asInt(); | |
1188 if (tmp < 0) | |
1189 { | |
1190 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
1191 } | |
1192 | |
1193 since = static_cast<size_t>(tmp); | |
1194 } | |
1195 | |
1183 std::string level = request["Level"].asString(); | 1196 std::string level = request["Level"].asString(); |
1184 | 1197 |
1185 LookupResource query(StringToResourceType(level.c_str())); | 1198 LookupResource query(StringToResourceType(level.c_str())); |
1186 | 1199 |
1187 Json::Value::Members members = request["Query"].getMemberNames(); | 1200 Json::Value::Members members = request["Query"].getMemberNames(); |
1196 request["Query"][members[i]].asString(), | 1209 request["Query"][members[i]].asString(), |
1197 caseSensitive); | 1210 caseSensitive); |
1198 } | 1211 } |
1199 | 1212 |
1200 std::list<std::string> resources; | 1213 std::list<std::string> resources; |
1201 context.Apply(resources, query, limit); | 1214 context.Apply(resources, query, since, limit); |
1202 AnswerListOfResources(call.GetOutput(), context.GetIndex(), resources, query.GetLevel(), expand); | 1215 AnswerListOfResources(call.GetOutput(), context.GetIndex(), |
1216 resources, query.GetLevel(), expand); | |
1203 } | 1217 } |
1204 else | 1218 else |
1205 { | 1219 { |
1206 throw OrthancException(ErrorCode_BadRequest); | 1220 throw OrthancException(ErrorCode_BadRequest); |
1207 } | 1221 } |