diff OrthancServer/OrthancRestApi.cpp @ 237:16a4ac70bd8a

last change and export
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 30 Nov 2012 15:45:15 +0100
parents c11273198cef
children e4148b0ab1d0
line wrap: on
line diff
--- a/OrthancServer/OrthancRestApi.cpp	Fri Nov 30 15:09:16 2012 +0100
+++ b/OrthancServer/OrthancRestApi.cpp	Fri Nov 30 15:45:15 2012 +0100
@@ -350,10 +350,19 @@
  
   static void GetSinceAndLimit(int64_t& since,
                                unsigned int& limit,
+                               bool& last,
                                const RestApi::GetCall& call)
   {
     static const unsigned int MAX_RESULTS = 100;
-        
+    
+    if (call.HasArgument("last"))
+    {
+      last = true;
+      return;
+    }
+
+    last = false;
+
     try
     {
       since = boost::lexical_cast<int64_t>(call.GetArgument("since", "0"));
@@ -377,10 +386,12 @@
     //std::string filter = GetArgument(getArguments, "filter", "");
     int64_t since;
     unsigned int limit;
-    GetSinceAndLimit(since, limit, call);
+    bool last;
+    GetSinceAndLimit(since, limit, last, call);
 
     Json::Value result;
-    if (context.GetIndex().GetChanges(result, since, limit))
+    if ((!last && context.GetIndex().GetChanges(result, since, limit)) ||
+        ( last && context.GetIndex().GetLastChange(result)))
     {
       call.GetOutput().AnswerJson(result);
     }
@@ -393,10 +404,12 @@
 
     int64_t since;
     unsigned int limit;
-    GetSinceAndLimit(since, limit, call);
+    bool last;
+    GetSinceAndLimit(since, limit, last, call);
 
     Json::Value result;
-    if (context.GetIndex().GetExportedResources(result, since, limit))
+    if ((!last && context.GetIndex().GetExportedResources(result, since, limit)) ||
+        ( last && context.GetIndex().GetLastExportedResource(result)))
     {
       call.GetOutput().AnswerJson(result);
     }
@@ -619,7 +632,7 @@
     Register("/", ServeRoot);
     Register("/system", GetSystemInformation);
     Register("/changes", GetChanges);
-    Register("/exported", GetExports);
+    Register("/exports", GetExports);
 
     Register("/instances", UploadDicomFile);
     Register("/instances", ListResources<ResourceType_Instance>);