From 34c4aa26950538c6ff1ed39f3f8bde448592b685 Mon Sep 17 00:00:00 2001
From: Kirill Stytsenko <kirill@styts.com>
Date: Tue, 7 Dec 2021 12:33:01 +0100
Subject: [PATCH] Add logging to insertCsv

closes #110
---
 .../java/at/tuwien/service/impl/JdbcConnector.java    |  4 ++++
 fda-ui/nuxt.config.js                                 |  3 ++-
 .../_database_id/tables/_table_id/import.vue          |  7 ++++---
 .../databases/_database_id/tables/_table_id/index.vue |  5 ++++-
 fda-ui/plugins/axios.js                               | 11 +++++++++++
 5 files changed, 25 insertions(+), 5 deletions(-)
 create mode 100644 fda-ui/plugins/axios.js

diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/impl/JdbcConnector.java b/fda-table-service/services/src/main/java/at/tuwien/service/impl/JdbcConnector.java
index 0154d24ae9..81193a9f36 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/impl/JdbcConnector.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/impl/JdbcConnector.java
@@ -112,6 +112,8 @@ public abstract class JdbcConnector implements DatabaseConnector {
             log.warn("No data provided.");
             throw new TableMalformedException("No data provided");
         }
+        log.info("First row {}", data.getData().get(0));
+        log.info("Table columns {}", table.getColumns());
         if (data.getData().get(0).size() != table.getColumns().size()) {
             log.error("Provided columns differ from table columns found in metadata db.");
             throw new TableMalformedException("Provided columns differ from table columns found in metadata db.");
@@ -138,9 +140,11 @@ public abstract class JdbcConnector implements DatabaseConnector {
                     .values(row));
         }
         try {
+            log.trace("insertCsv statements {}", statements);
             context.batch(statements)
                     .execute();
         } catch (DataAccessException e) {
+            log.error("DataAccessException {}", e);
             throw new TableMalformedException("Columns seem to differ or other problem with jOOQ mapper, most commonly it is a data type issue try with type 'STRING'", e);
         }
     }
diff --git a/fda-ui/nuxt.config.js b/fda-ui/nuxt.config.js
index 4dce4966bd..d621ad2f12 100644
--- a/fda-ui/nuxt.config.js
+++ b/fda-ui/nuxt.config.js
@@ -54,7 +54,8 @@ export default {
 
   plugins: [
     { src: '~/plugins/toast', ssr: false },
-    { src: '~/plugins/vendors', ssr: false }
+    { src: '~/plugins/vendors', ssr: false },
+    { src: '~/plugins/axios' }
   ],
 
   // Auto import components (https://go.nuxtjs.dev/config-components)
diff --git a/fda-ui/pages/databases/_database_id/tables/_table_id/import.vue b/fda-ui/pages/databases/_database_id/tables/_table_id/import.vue
index d199c99dca..603319cd95 100644
--- a/fda-ui/pages/databases/_database_id/tables/_table_id/import.vue
+++ b/fda-ui/pages/databases/_database_id/tables/_table_id/import.vue
@@ -4,7 +4,7 @@
       <v-card-title v-if="!loading">
         Import Data
       </v-card-title>
-      <v-card-subtitle>{{ table.name }} ({{ table.internal_name }})</v-card-subtitle>
+      <v-card-subtitle>{{ table.name }} ({{ table.internalName }})</v-card-subtitle>
       <v-card-text>
         <v-checkbox
           v-model="tableInsert.skipHeader"
@@ -43,7 +43,7 @@ export default {
       loading: false,
       table: {
         name: null,
-        internal_name: null
+        internalName: null
       },
       tableInsert: {
         skipHeader: false,
@@ -76,6 +76,7 @@ export default {
       } catch (err) {
         console.error('Could not insert data.', err)
       }
+      this.loading = false
     },
     async upload () {
       this.loading = true
@@ -97,7 +98,7 @@ export default {
         console.error('Could not upload data.', err)
         return
       }
-      const insertUrl = `/api/database/${this.databaseId}/table/${this.tableId}/data`
+      const insertUrl = `/api/database/${this.databaseId}/table/${this.tableId}/data/csv`
       let insertResult
       try {
         insertResult = await this.$axios.post(insertUrl, this.tableInsert)
diff --git a/fda-ui/pages/databases/_database_id/tables/_table_id/index.vue b/fda-ui/pages/databases/_database_id/tables/_table_id/index.vue
index dfc2ea2a72..f479f2d3a0 100644
--- a/fda-ui/pages/databases/_database_id/tables/_table_id/index.vue
+++ b/fda-ui/pages/databases/_database_id/tables/_table_id/index.vue
@@ -38,6 +38,7 @@ export default {
   data () {
     return {
       loading: true,
+      page: 0,
       table: {
         name: null,
         description: null
@@ -75,7 +76,9 @@ export default {
     },
     async loadData () {
       try {
-        const res = await this.$axios.get(`/api/database/${this.$route.params.database_id}/table/${this.$route.params.table_id}/data`)
+        let url = `/api/database/${this.$route.params.database_id}/table/${this.$route.params.table_id}/data`
+        url += `?page=${this.page}&size=10`
+        const res = await this.$axios.get(url)
         this.rows = res.data.result
         console.debug('table data', res.data)
       } catch (err) {
diff --git a/fda-ui/plugins/axios.js b/fda-ui/plugins/axios.js
new file mode 100644
index 0000000000..b792a0bf3d
--- /dev/null
+++ b/fda-ui/plugins/axios.js
@@ -0,0 +1,11 @@
+export default function ({ $axios, redirect }) {
+  console.log('axios intercepter args', arguments)
+}
+
+// export default function (item) {
+//   $axios.onError(error => {
+//     if(error.response.status === 500) {
+//       redirect('/sorry')
+//     }
+//   })
+// }
-- 
GitLab