From ea2577d1c3f3efd8942ef5b92ec0335431a249ee Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 22 Mar 2023 21:44:32 +0000 Subject: [PATCH] Include "created" and "updated" timestamps in GET /arbitrary/resource/* API endpoints. --- .../qortal/data/arbitrary/ArbitraryResourceInfo.java | 2 ++ .../repository/hsqldb/HSQLDBArbitraryRepository.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/data/arbitrary/ArbitraryResourceInfo.java b/src/main/java/org/qortal/data/arbitrary/ArbitraryResourceInfo.java index d6161526..a09fc5ff 100644 --- a/src/main/java/org/qortal/data/arbitrary/ArbitraryResourceInfo.java +++ b/src/main/java/org/qortal/data/arbitrary/ArbitraryResourceInfo.java @@ -16,6 +16,8 @@ public class ArbitraryResourceInfo { public ArbitraryResourceMetadata metadata; public Long size; + public Long created; + public Long updated; public ArbitraryResourceInfo() { } diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java index 5c3a88f7..878c262f 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBArbitraryRepository.java @@ -383,7 +383,10 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository { StringBuilder sql = new StringBuilder(512); List bindParams = new ArrayList<>(); - sql.append("SELECT name, service, identifier, MAX(size) AS max_size FROM ArbitraryTransactions WHERE 1=1"); + sql.append("SELECT name, service, identifier, MAX(size) AS max_size, MIN(created_when) AS date_created, MAX(created_when) AS date_updated " + + "FROM ArbitraryTransactions " + + "JOIN Transactions USING (signature) " + + "WHERE 1=1"); if (service != null) { sql.append(" AND service = "); @@ -426,7 +429,7 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository { bindParams.add(queryWildcard); } - sql.append(" GROUP BY name, service, identifier ORDER BY name COLLATE SQL_TEXT_UCC_NO_PAD"); + sql.append(" GROUP BY name, service, identifier ORDER BY date_created"); if (reverse != null && reverse) { sql.append(" DESC"); @@ -445,6 +448,8 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository { Service serviceResult = Service.valueOf(resultSet.getInt(2)); String identifierResult = resultSet.getString(3); Integer sizeResult = resultSet.getInt(4); + long dateCreated = resultSet.getLong(5); + long dateUpdated = resultSet.getLong(6); // We should filter out resources without names if (nameResult == null) { @@ -456,6 +461,8 @@ public class HSQLDBArbitraryRepository implements ArbitraryRepository { arbitraryResourceInfo.service = serviceResult; arbitraryResourceInfo.identifier = identifierResult; arbitraryResourceInfo.size = Longs.valueOf(sizeResult); + arbitraryResourceInfo.created = dateCreated; + arbitraryResourceInfo.updated = dateUpdated; arbitraryResources.add(arbitraryResourceInfo); } while (resultSet.next());