This is an automated email from the ASF dual-hosted git repository.

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new c7300fd52 FINERACT-1911: Support timestamp type
c7300fd52 is described below

commit c7300fd526fc2cd3214df5cef3723f874a95aee1
Author: jmarta <[email protected]>
AuthorDate: Fri Aug 18 14:14:13 2023 +0200

    FINERACT-1911: Support timestamp type
---
 .../fineract/infrastructure/core/service/database/JdbcJavaType.java  | 5 +++--
 .../core/serialization/DatatableCommandFromApiJsonDeserializer.java  | 4 +++-
 .../infrastructure/dataqueries/service/GenericDataServiceImpl.java   | 3 ++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
index fc43db9a1..76bb960ee 100644
--- 
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
+++ 
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/JdbcJavaType.java
@@ -57,7 +57,7 @@ public enum JdbcJavaType {
     DOUBLE(JavaType.DOUBLE, new DialectType(JDBCType.DOUBLE, null, true, true, 
"DOUBLE PRECISION", "REAL"),
             new DialectType(JDBCType.DOUBLE, "DOUBLE PRECISION", "FLOAT8")), //
     NUMERIC(JavaType.BIGDECIMAL, new DialectType(JDBCType.NUMERIC, true, 
true), new DialectType(JDBCType.NUMERIC, true, true)), //
-    DECIMAL(JavaType.BIGDECIMAL, new DialectType(JDBCType.DECIMAL, "DECIMAL", 
true, true, "DEC", "FIXED"),
+    DECIMAL(JavaType.BIGDECIMAL, new DialectType(JDBCType.DECIMAL, null, true, 
true, "DEC", "FIXED"),
             new DialectType(JDBCType.DECIMAL, true, true)), //
     SERIAL(JavaType.INT, new DialectType(JDBCType.INTEGER, "{type} 
AUTO_INCREMENT", true, false),
             new DialectType(JDBCType.INTEGER, "SERIAL", "SERIAL4")), //
@@ -79,8 +79,9 @@ public enum JdbcJavaType {
     TIME(JavaType.LOCAL_TIME, new DialectType(JDBCType.TIME), new 
DialectType(JDBCType.TIME, null, "TIME WITHOUT TIME ZONE")), //
     TIME_WITH_TIMEZONE(JavaType.OFFSET_TIME, new 
DialectType(JDBCType.TIME_WITH_TIMEZONE, "TIME"),
             new DialectType(JDBCType.TIME_WITH_TIMEZONE, null, "TIME WITH TIME 
ZONE")), //
-    DATETIME(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP, 
"DATETIME", "TIMESTAMP"),
+    TIMESTAMP(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP),
             new DialectType(JDBCType.TIMESTAMP, null, "TIMESTAMP WITHOUT TIME 
ZONE")), //
+    DATETIME(JavaType.LOCAL_DATETIME, new DialectType(JDBCType.TIMESTAMP, 
"DATETIME"), new DialectType(JDBCType.TIMESTAMP)), //
     TIMESTAMP_WITH_TIMEZONE(JavaType.OFFSET_DATETIME, new 
DialectType(JDBCType.TIMESTAMP_WITH_TIMEZONE, null, "DATETIME"),
             new DialectType(JDBCType.TIMESTAMP_WITH_TIMEZONE, null, "TIMESTAMP 
WITH TIME ZONE", "TIMESTAMPTZ")), //
     INTERVAL(JavaType.TIME, new DialectType(JDBCType.TIME), new 
DialectType(JDBCType.TIME, "INTERVAL")), //
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
index 1989ba82d..0a8f20068 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/serialization/DatatableCommandFromApiJsonDeserializer.java
@@ -24,6 +24,7 @@ import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaT
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DECIMAL;
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.INTEGER;
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TEXT;
+import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TIMESTAMP;
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.VARCHAR;
 import static 
org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.API_FIELD_AFTER;
 import static 
org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.API_FIELD_CODE;
@@ -332,7 +333,8 @@ public class DatatableCommandFromApiJsonDeserializer {
             case API_FIELD_TYPE_BOOLEAN -> BOOLEAN;
             case API_FIELD_TYPE_DECIMAL -> DECIMAL;
             case API_FIELD_TYPE_DATE -> DATE;
-            case API_FIELD_TYPE_DATETIME, API_FIELD_TYPE_TIMESTAMP -> DATETIME;
+            case API_FIELD_TYPE_DATETIME -> DATETIME;
+            case API_FIELD_TYPE_TIMESTAMP -> TIMESTAMP;
             case API_FIELD_TYPE_TEXT -> TEXT;
             default -> throw new 
PlatformDataIntegrityException("error.msg.datatable.column.type.invalid",
                     "Column type " + apiType + " is not supported.");
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
index 924d62d3b..50722954c 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/GenericDataServiceImpl.java
@@ -21,6 +21,7 @@ package 
org.apache.fineract.infrastructure.dataqueries.service;
 import static java.lang.String.format;
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DATE;
 import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.DATETIME;
+import static 
org.apache.fineract.infrastructure.core.service.database.JdbcJavaType.TIMESTAMP;
 import static 
org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.CODELOOKUP;
 import static 
org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.DECIMAL;
 import static 
org.apache.fineract.infrastructure.dataqueries.data.ResultsetColumnHeaderData.DisplayType.INTEGER;
@@ -152,7 +153,7 @@ public class GenericDataServiceImpl implements 
GenericDataService {
                 if (colType == DATE) {
                     Date tmpDate = (Date) rs.getObject(columnName);
                     columnValues.add(tmpDate == null ? null : 
tmpDate.toLocalDate());
-                } else if (colType == DATETIME) {
+                } else if (colType == DATETIME || colType == TIMESTAMP) {
                     Object tmpDate = rs.getObject(columnName);
                     columnValues.add(
                             tmpDate == null ? null : (tmpDate instanceof 
Timestamp ? ((Timestamp) tmpDate).toLocalDateTime() : tmpDate));

Reply via email to