From 5b72312625ecccb2fb9cdd08c46bc429e6e122e4 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Thu, 30 Sep 2021 12:36:56 +0200
Subject: [PATCH] updated interfaces

---
 .../java/at/tuwien/endpoints/DataEndpoint.java     |  6 +++---
 .../java/at/tuwien/endpoints/TableEndpoint.java    |  8 +++++---
 .../main/java/at/tuwien/service/DataService.java   | 14 +++++++++++---
 .../at/tuwien/service/impl/MariaDataService.java   |  1 +
 .../at/tuwien/service/impl/RabbitMqService.java    |  9 +++++----
 5 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/DataEndpoint.java b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/DataEndpoint.java
index 062cb1cdc8..31230e3321 100644
--- a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/DataEndpoint.java
+++ b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/DataEndpoint.java
@@ -5,7 +5,7 @@ import at.tuwien.api.database.table.TableCsvDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.service.impl.MariaDataService;
+import at.tuwien.service.DataService;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
@@ -24,10 +24,10 @@ import java.sql.Timestamp;
 @RequestMapping("/api/database/{id}/table/{tableId}/data")
 public class DataEndpoint {
 
-    private final MariaDataService dataService;
+    private final DataService dataService;
 
     @Autowired
-    public DataEndpoint(MariaDataService dataService) {
+    public DataEndpoint(DataService dataService) {
         this.dataService = dataService;
     }
 
diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
index 81ad864f82..7e5ce790d5 100644
--- a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
@@ -4,6 +4,8 @@ import at.tuwien.api.database.table.*;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.TableMapper;
+import at.tuwien.service.MessageQueueService;
+import at.tuwien.service.TableService;
 import at.tuwien.service.impl.RabbitMqService;
 import at.tuwien.service.impl.TableServiceImpl;
 import io.swagger.annotations.ApiOperation;
@@ -26,12 +28,12 @@ import java.util.stream.Collectors;
 @RequestMapping("/api/database/{id}")
 public class TableEndpoint {
 
-    private final TableServiceImpl tableService;
-    private final RabbitMqService amqpService;
+    private final TableService tableService;
+    private final MessageQueueService amqpService;
     private final TableMapper tableMapper;
 
     @Autowired
-    public TableEndpoint(TableServiceImpl tableService, RabbitMqService amqpService, TableMapper tableMapper) {
+    public TableEndpoint(TableService tableService, MessageQueueService amqpService, TableMapper tableMapper) {
         this.tableService = tableService;
         this.amqpService = amqpService;
         this.tableMapper = tableMapper;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
index a02f086703..0ef5e20305 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
@@ -5,14 +5,22 @@ import at.tuwien.api.database.table.TableCsvDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import com.opencsv.exceptions.CsvException;
-import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
 import java.sql.Timestamp;
 
 public interface DataService {
 
+    /**
+     * Find a table by database-table id pair
+     *
+     * @param databaseId The database-table id pair.
+     * @param tableId    The database-table id pair.
+     * @return The table.
+     * @throws TableNotFoundException    The table was not found.
+     * @throws DatabaseNotFoundException The database was not found.
+     */
+    Table findById(Long databaseId, Long tableId) throws TableNotFoundException, DatabaseNotFoundException;
+
     /**
      * Insert data from a file into a table of a database
      *
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/impl/MariaDataService.java b/fda-table-service/services/src/main/java/at/tuwien/service/impl/MariaDataService.java
index d4ce949a15..ac099082c9 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/impl/MariaDataService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/impl/MariaDataService.java
@@ -52,6 +52,7 @@ public class MariaDataService extends JdbcConnector implements DataService {
         this.databaseRepository = databaseRepository;
     }
 
+    @Override
     @Transactional
     public Table findById(Long databaseId, Long tableId) throws TableNotFoundException, DatabaseNotFoundException {
         final Optional<Table> table = tableRepository.findByDatabaseAndId(findDatabase(databaseId), tableId);
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java b/fda-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java
index 07bfc00418..5d35123746 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java
@@ -7,6 +7,7 @@ import at.tuwien.exception.AmqpException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.TableMalformedException;
 import at.tuwien.repository.jpa.TableRepository;
+import at.tuwien.service.DataService;
 import at.tuwien.service.MessageQueueService;
 import at.tuwien.service.impl.MariaDataService;
 import com.fasterxml.jackson.core.JsonParseException;
@@ -34,12 +35,12 @@ public class RabbitMqService implements MessageQueueService {
     private static final String AMQP_EXCHANGE = "fda";
 
     private final Channel channel;
-    private final MariaDataService dataService;
+    private final DataService dataService;
     private final ObjectMapper objectMapper;
     private final TableRepository tableRepository;
 
     @Autowired
-    public RabbitMqService(Channel channel, MariaDataService dataService, ObjectMapper objectMapper,
+    public RabbitMqService(Channel channel, DataService dataService, ObjectMapper objectMapper,
                            TableRepository tableRepository) {
         this.channel = channel;
         this.dataService = dataService;
@@ -99,14 +100,14 @@ public class RabbitMqService implements MessageQueueService {
     public void createUserConsumer(Table table) throws IOException {
         channel.basicConsume(table.getTopic(), true, (consumerTag, response) -> {
             try {
-                dataService.insertCsv(table, objectMapper.readValue(response.getBody(), TableCsvDto.class));
+                dataService.insert(table, objectMapper.readValue(response.getBody(), TableCsvDto.class));
             } catch (JsonParseException | MismatchedInputException e) {
                 log.warn("Could not parse AMQP payload {}", e.getMessage());
                 /* ignore */
             } catch (ConnectException e) {
                 log.warn("Could not redirect AMQP payload {}", e.getMessage());
                 /* ignore */
-            } catch (SQLException | ImageNotSupportedException | DataAccessException | TableMalformedException e) {
+            } catch (ImageNotSupportedException | DataAccessException | TableMalformedException e) {
                 log.warn("Could not insert AMQP payload {}", e.getMessage());
                 /* ignore */
             }
-- 
GitLab