From 0df888aa8e627c0ec51a4d7fd399e33138dad96b Mon Sep 17 00:00:00 2001 From: Dexter Amundsen Date: Thu, 13 Feb 2025 10:12:51 -0800 Subject: [PATCH] [BENCH-5181] Fix range data conversion in requests (#1169) * Squash and merge * Squash and merge --- .../controller/objmapping/FromApiUtils.java | 1 + ui/src/data/source.tsx | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/service/src/main/java/bio/terra/tanagra/app/controller/objmapping/FromApiUtils.java b/service/src/main/java/bio/terra/tanagra/app/controller/objmapping/FromApiUtils.java index f1daa5ca5..6653cd160 100644 --- a/service/src/main/java/bio/terra/tanagra/app/controller/objmapping/FromApiUtils.java +++ b/service/src/main/java/bio/terra/tanagra/app/controller/objmapping/FromApiUtils.java @@ -509,6 +509,7 @@ public static Literal fromApiObject(ApiLiteral apiLiteral) { apiLiteral.getValueUnion().getInt64Val() != null ? Long.parseLong(apiLiteral.getValueUnion().getInt64Val()) : null); + case DOUBLE -> Literal.forDouble(apiLiteral.getValueUnion().getDoubleVal()); case STRING -> Literal.forString(apiLiteral.getValueUnion().getStringVal()); case BOOLEAN -> Literal.forBoolean(apiLiteral.getValueUnion().isBoolVal()); case DATE -> Literal.forDate(apiLiteral.getValueUnion().getDateVal()); diff --git a/ui/src/data/source.tsx b/ui/src/data/source.tsx index 28aaa261f..02c9518ea 100644 --- a/ui/src/data/source.tsx +++ b/ui/src/data/source.tsx @@ -14,6 +14,7 @@ import * as tanagra from "tanagra-api"; import * as tanagraUnderlay from "tanagra-underlay/underlayConfig"; import { Underlay } from "underlaysSlice"; import { isValid } from "util/valid"; +import { DataType } from "tanagra-api"; export type EntityNode = { data: DataEntry; @@ -1036,7 +1037,7 @@ export class BackendUnderlaySource implements UnderlaySource { } const limit = options?.fetchAll ? 100000 : options?.limit; - const req = { + return { entityName: entity.name, underlayName: this.underlay.name, query: { @@ -1074,7 +1075,6 @@ export class BackendUnderlaySource implements UnderlaySource { pageMarker: options?.pageMarker, }, }; - return req; } private async queryHints( @@ -1606,19 +1606,26 @@ function isInternalAttribute(attribute: string): boolean { } export function literalFromDataValue(value: DataValue): tanagra.Literal { - let dataType = tanagra.DataType.Int64; - if (typeof value === "string") { + let dataType: DataType; + if (typeof value === "bigint") { + dataType = tanagra.DataType.Int64; + } else if (typeof value == "number") { + dataType = tanagra.DataType.Double; + } else if (typeof value === "string") { dataType = tanagra.DataType.String; } else if (typeof value === "boolean") { dataType = tanagra.DataType.Boolean; } else if (value instanceof Date) { dataType = tanagra.DataType.Date; + } else { + throw new Error(`Unsupported type of ${JSON.stringify(value)}.`); } return { dataType, valueUnion: { int64Val: typeof value === "bigint" ? String(value) : undefined, + doubleVal: typeof value === "number" ? value : undefined, stringVal: typeof value === "string" ? value : undefined, boolVal: typeof value === "boolean" ? value : undefined, dateVal: value instanceof Date ? value.toISOString() : undefined, @@ -2106,7 +2113,7 @@ function fromAPIFeatureSetInternal( function toAPICriteriaGroupSections( groupSections: GroupSection[] ): tanagra.CriteriaGroupSection[] { - const sections = groupSections.map((section) => ({ + return groupSections.map((section) => ({ id: section.id, displayName: section.name ?? "", operator: toAPICriteriaGroupSectionOperator(section.filter.kind), @@ -2122,7 +2129,6 @@ function toAPICriteriaGroupSections( ), disabled: !!section.disabled, })); - return sections; } function toAPICriteriaGroups(groups: Group[]): tanagra.CriteriaGroup[] { @@ -2252,7 +2258,7 @@ function parseAPIError(p: Promise) { } const text = await response.text(); - let message = ""; + let message; try { message = JSON.parse(text).message; } catch (e) {