changeset 729:9f41a8c94f9c

fix audit-logs API
author Alain Mazy <am@orthanc.team>
date Wed, 13 Aug 2025 09:57:38 +0200
parents 5d6ce8e26dec
children ae6dabec9af7 94fd54721752
files Framework/Plugins/DatabaseBackendAdapterV4.cpp Framework/Plugins/IDatabaseBackend.h Framework/Plugins/IndexBackend.cpp Framework/Plugins/IndexBackend.h
diffstat 4 files changed, 17 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/Framework/Plugins/DatabaseBackendAdapterV4.cpp	Tue Aug 12 15:27:09 2025 +0200
+++ b/Framework/Plugins/DatabaseBackendAdapterV4.cpp	Wed Aug 13 09:57:38 2025 +0200
@@ -1576,8 +1576,8 @@
 
     uint64_t since = 0;
     uint64_t limit = 0;
-    uint64_t fromTs = 0;
-    uint64_t toTs = 0;
+    std::string fromTsIsoFormat;
+    std::string toTsIsoFormat;
     bool logDataInJson = false;
 
     if (getArguments.find("user-id") != getArguments.end())
@@ -1607,12 +1607,12 @@
 
     if (getArguments.find("from-timestamp") != getArguments.end())
     {
-      fromTs = boost::lexical_cast<uint64_t>(getArguments["from-timestamp"]);
+      fromTsIsoFormat = getArguments["from-timestamp"];
     }
 
     if (getArguments.find("to-timestamp") != getArguments.end())
     {
-      toTs = boost::lexical_cast<uint64_t>(getArguments["to-timestamp"]);
+      toTsIsoFormat = getArguments["to-timestamp"];
     }
 
     if (getArguments.find("log-data-format") != getArguments.end())
@@ -1644,7 +1644,7 @@
                                          userIdFilter,
                                          resourceIdFilter,
                                          actionFilter,
-                                         fromTs, toTs,
+                                         fromTsIsoFormat, toTsIsoFormat,
                                          since, limit);
 
       for (std::list<IDatabaseBackend::AuditLog>::const_iterator it = logs.begin(); it != logs.end(); ++it)
--- a/Framework/Plugins/IDatabaseBackend.h	Tue Aug 12 15:27:09 2025 +0200
+++ b/Framework/Plugins/IDatabaseBackend.h	Wed Aug 13 09:57:38 2025 +0200
@@ -550,8 +550,8 @@
                               const std::string& userIdFilter,
                               const std::string& resourceIdFilter,
                               const std::string& actionFilter,
-                              uint64_t fromTs,
-                              uint64_t toTs,
+                              const std::string& fromTsIsoFormat,
+                              const std::string& toTsIsoFormat,
                               uint64_t since,
                               uint64_t limit) = 0;
 #endif
--- a/Framework/Plugins/IndexBackend.cpp	Tue Aug 12 15:27:09 2025 +0200
+++ b/Framework/Plugins/IndexBackend.cpp	Wed Aug 13 09:57:38 2025 +0200
@@ -4729,8 +4729,8 @@
                                     const std::string& userIdFilter,
                                     const std::string& resourceIdFilter,
                                     const std::string& actionFilter,
-                                    uint64_t fromTs,
-                                    uint64_t toTs,
+                                    const std::string& fromTsIsoFormat,
+                                    const std::string& toTsIsoFormat,
                                     uint64_t since,
                                     uint64_t limit)
     {
@@ -4754,14 +4754,14 @@
         filters.push_back("action = " + formatter.GenerateParameter(actionFilter));
       }
 
-      if (fromTs > 0)
+      if (!fromTsIsoFormat.empty())
       {
-        filters.push_back("ts >= " + formatter.GenerateParameter(fromTs));
+        filters.push_back("ts >= " + formatter.GenerateParameter(fromTsIsoFormat) + "::TIMESTAMPTZ");
       }
 
-      if (toTs > 0)
+      if (!toTsIsoFormat.empty())
       {
-        filters.push_back("ts < " + formatter.GenerateParameter(toTs));
+        filters.push_back("ts < " + formatter.GenerateParameter(toTsIsoFormat) + "::TIMESTAMPTZ");
       }
 
       if (filters.size() > 0)
@@ -4771,13 +4771,13 @@
         sql += " WHERE " + joinedFilters;
       }
 
+      sql += " ORDER BY ts ASC ";
+
       if (since > 0 || limit > 0)
       {
         sql += formatter.FormatLimits(since, limit);
       }
 
-      sql += " ORDER BY ts ASC";
-
       DatabaseManager::CachedStatement statement(STATEMENT_FROM_HERE_DYNAMIC(sql), manager, sql);
       statement.SetReadOnly(true);
 
--- a/Framework/Plugins/IndexBackend.h	Tue Aug 12 15:27:09 2025 +0200
+++ b/Framework/Plugins/IndexBackend.h	Wed Aug 13 09:57:38 2025 +0200
@@ -536,8 +536,8 @@
                               const std::string& userIdFilter,
                               const std::string& resourceIdFilter,
                               const std::string& actionFilter,
-                              uint64_t fromTs,
-                              uint64_t toTs,
+                              const std::string& fromTsIsoFormat,
+                              const std::string& toTsIsoFormat,
                               uint64_t since,
                               uint64_t limit) ORTHANC_OVERRIDE;
 #endif