From 866b604f013f474b76560671d734ad36c83fe766 Mon Sep 17 00:00:00 2001
From: Steve Reis <stevereis93@gmail.com>
Date: Mon, 14 Mar 2022 13:56:52 +0100
Subject: [PATCH] feat: Add theme on tableresult

---
 .../engine/connectors/datashield/main.connector.ts | 12 ++++++++++--
 api/src/engine/models/result/table-result.model.ts | 14 +++++++++++++-
 api/src/schema.gql                                 |  6 ++++++
 3 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/api/src/engine/connectors/datashield/main.connector.ts b/api/src/engine/connectors/datashield/main.connector.ts
index 2ff42fe..81f7bf6 100644
--- a/api/src/engine/connectors/datashield/main.connector.ts
+++ b/api/src/engine/connectors/datashield/main.connector.ts
@@ -20,7 +20,10 @@ import { ExperimentCreateInput } from 'src/engine/models/experiment/input/experi
 import { ExperimentEditInput } from 'src/engine/models/experiment/input/experiment-edit.input';
 import { ListExperiments } from 'src/engine/models/experiment/list-experiments.model';
 import { RawResult } from 'src/engine/models/result/raw-result.model';
-import { TableResult } from 'src/engine/models/result/table-result.model';
+import {
+  TableResult,
+  ThemeType,
+} from 'src/engine/models/result/table-result.model';
 import {
   transformToDomains,
   transformToHisto,
@@ -73,6 +76,7 @@ export default class DataShieldService implements IEngineService {
 
     const title = variable.replace(/\./g, ' ').trim();
     const data = { ...response.data, title };
+
     const chart = transformToHisto.evaluate(data);
 
     return {
@@ -96,7 +100,11 @@ export default class DataShieldService implements IEngineService {
 
     const title = variable.replace(/\./g, ' ').trim();
     const data = { ...response.data, title };
-    return transformToTable.evaluate(data);
+    const table = transformToTable.evaluate(data);
+    return {
+      ...table,
+      theme: ThemeType.NORMAL,
+    };
   }
 
   async createExperiment(
diff --git a/api/src/engine/models/result/table-result.model.ts b/api/src/engine/models/result/table-result.model.ts
index 002d59c..664d64c 100644
--- a/api/src/engine/models/result/table-result.model.ts
+++ b/api/src/engine/models/result/table-result.model.ts
@@ -1,7 +1,16 @@
-import { Field, ObjectType } from '@nestjs/graphql';
+import { Field, ObjectType, registerEnumType } from '@nestjs/graphql';
 import { Header } from './common/header.model';
 import { Result } from './common/result.model';
 
+export enum ThemeType {
+  DEFAULT,
+  NORMAL,
+}
+
+registerEnumType(ThemeType, {
+  name: 'ThemeType',
+});
+
 @ObjectType()
 export class TableResult extends Result {
   @Field()
@@ -12,4 +21,7 @@ export class TableResult extends Result {
 
   @Field(() => [Header])
   headers: Header[];
+
+  @Field(() => ThemeType, { defaultValue: ThemeType.DEFAULT })
+  theme?: ThemeType;
 }
diff --git a/api/src/schema.gql b/api/src/schema.gql
index b8935c5..9fb8aad 100644
--- a/api/src/schema.gql
+++ b/api/src/schema.gql
@@ -82,6 +82,12 @@ type TableResult {
   name: String!
   data: [[String!]!]!
   headers: [Header!]!
+  theme: ThemeType!
+}
+
+enum ThemeType {
+  DEFAULT
+  NORMAL
 }
 
 type RawResult {
-- 
GitLab