From 614aead348dbc93ece5a919986c77cdaf8d937f8 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Mon, 15 May 2023 12:41:22 -0500 Subject: [PATCH 01/11] add more support for byte[]/BLOB field type; checkpoint --- .../core/model/data/QRecordEntity.java | 3 ++- .../core/model/data/QRecordEntityField.java | 5 +++++ .../backend/core/model/data/QRecordEnum.java | 3 ++- .../model/metadata/fields/QFieldType.java | 4 ++++ .../templates/ConvertHtmlToPdfActionTest.java | 19 +++++++++++++++---- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java index ee6827d1..138ed8f5 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntity.java @@ -253,7 +253,8 @@ public abstract class QRecordEntity || returnType.equals(BigDecimal.class) || returnType.equals(Instant.class) || returnType.equals(LocalDate.class) - || returnType.equals(LocalTime.class)); + || returnType.equals(LocalTime.class) + || returnType.equals(byte[].class)); ///////////////////////////////////////////// // note - this list has implications upon: // // - QFieldType.fromClass // diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntityField.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntityField.java index 510308c0..a9999b25 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntityField.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEntityField.java @@ -165,6 +165,11 @@ public class QRecordEntityField { return (ValueUtils.getValueAsLocalTime(value)); } + + if(type.equals(byte[].class)) + { + return (ValueUtils.getValueAsByteArray(value)); + } } catch(Exception e) { diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java index 83eea005..f5530b3b 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QRecordEnum.java @@ -167,7 +167,8 @@ public interface QRecordEnum || returnType.equals(BigDecimal.class) || returnType.equals(Instant.class) || returnType.equals(LocalDate.class) - || returnType.equals(LocalTime.class)); + || returnType.equals(LocalTime.class) + || returnType.equals(byte[].class)); ///////////////////////////////////////////// // note - this list has implications upon: // // - QFieldType.fromClass // diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldType.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldType.java index 367a4960..8971a846 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldType.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldType.java @@ -85,6 +85,10 @@ public enum QFieldType { return (BOOLEAN); } + if(c.equals(byte[].class)) + { + return (BLOB); + } throw (new QException("Unrecognized class [" + c + "]")); } diff --git a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/templates/ConvertHtmlToPdfActionTest.java b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/templates/ConvertHtmlToPdfActionTest.java index a145a196..62393cf8 100644 --- a/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/templates/ConvertHtmlToPdfActionTest.java +++ b/qqq-backend-core/src/test/java/com/kingsrook/qqq/backend/core/actions/templates/ConvertHtmlToPdfActionTest.java @@ -26,11 +26,15 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Path; +import java.util.Map; import com.kingsrook.qqq.backend.core.BaseTest; import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.templates.ConvertHtmlToPdfInput; +import com.kingsrook.qqq.backend.core.model.templates.RenderTemplateInput; +import com.kingsrook.qqq.backend.core.model.templates.RenderTemplateOutput; +import com.kingsrook.qqq.backend.core.model.templates.TemplateType; import org.junit.jupiter.api.Test; @@ -46,10 +50,10 @@ class ConvertHtmlToPdfActionTest extends BaseTest @Test void test() throws QException, IOException { - QInstance instance = QContext.getQInstance(); - ConvertHtmlToPdfInput input = new ConvertHtmlToPdfInput(); + QInstance instance = QContext.getQInstance(); - input.setHtml(""" + RenderTemplateInput renderTemplateInput = new RenderTemplateInput(); + renderTemplateInput.setCode("""