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