diff artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java @ 273:22a90706d32d

Enables the artifact server to set the TTL of a specific collection via REST call. artifacts/trunk@2070 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 07 Jun 2011 16:27:47 +0000
parents a2df2b48d2aa
children e92d5944fe4b
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Tue Jun 07 11:06:54 2011 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/Backend.java	Tue Jun 07 16:27:47 2011 +0000
@@ -126,6 +126,9 @@
     public static final String SQL_OUTDATE_ARTIFACTS_COLLECTION =
         SQL.get("outdate.artifacts.collection");
 
+    public static final String SQL_UPDATE_COLLECTION_TTL =
+        SQL.get("collections.update.ttl");
+
     public static final String SQL_OUTDATE_ARTIFACTS_USER =
         SQL.get("outdate.artifacts.user");
 
@@ -1513,5 +1516,30 @@
                 new CollectionItem[collectionItems.size()])
             : null;
     }
+
+
+    public boolean setCollectionTTL(final String uuid, final Long ttl) {
+        if (!isValidIdentifier(uuid)) {
+            logger.debug("Invalid collection id: '" + uuid + "'");
+            return false;
+        }
+
+        return new SQLExecutor() {
+            public boolean doIt() throws SQLException {
+                prepareStatement(SQL_UPDATE_COLLECTION_TTL);
+                if (ttl == null) {
+                    stmnt.setNull(1, Types.BIGINT);
+                }
+                else {
+                    stmnt.setLong(1, ttl);
+                }
+                stmnt.setString(2, uuid);
+                stmnt.execute();
+                conn.commit();
+
+                return true;
+            }
+        }.runWrite();
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org