diff --git a/Dockerfile b/Dockerfile
index c887095..52e6175 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,28 @@
-FROM eclipse-temurin:19-jdk-jammy
-
-WORKDIR /app
-
-COPY .mvn/ .mvn
-COPY mvnw pom.xml ./
-RUN ./mvnw dependency:resolve
-
-COPY src ./src
-
-CMD ["./mvnw", "spring-boot:run"]
\ No newline at end of file
+# FROM eclipse-temurin:19-jdk-jammy
+#
+# WORKDIR /app
+#
+# COPY .mvn/ .mvn
+# COPY mvnw pom.xml ./
+# RUN ./mvnw dependency:resolve
+#
+# COPY src ./src
+#
+# CMD ["./mvnw", "spring-boot:run"]
+#
+# Build
+#
+FROM maven:3.9.0-eclipse-temurin-19-focal AS build
+COPY src /home/app/src
+COPY pom.xml /home/app
+RUN mvn -f /home/app/pom.xml clean package -DskipTests
+#
+# Package stage
+#
+FROM openjdk:19-jdk-alpine
+WORKDIR /usr/local/lib
+RUN mkdir git
+RUN mkdir json
+COPY src/main/resources/json /usr/local/lib/json
+COPY --from=build /home/app/target/assistDbBackend-0.0.1-SNAPSHOT.jar /usr/local/lib/assistDbBackend.jar
+CMD ["java","-jar", "-Dapplication.config.path=classpath:", "/usr/local/lib/assistDbBackend.jar"]
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6640418..cd4a7fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,7 @@
19
+ jar
org.springframework.boot
diff --git a/src/main/java/com/apside/assist/db/backend/AssistDBBackendApplication.java b/src/main/java/com/apside/assist/db/backend/AssistDBBackendApplication.java
index ba602ef..42956cb 100644
--- a/src/main/java/com/apside/assist/db/backend/AssistDBBackendApplication.java
+++ b/src/main/java/com/apside/assist/db/backend/AssistDBBackendApplication.java
@@ -3,38 +3,13 @@ package com.apside.assist.db.backend;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import org.springframework.web.filter.CorsFilter;
-
-import java.util.Arrays;
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
public class AssistDBBackendApplication {
- private static final String ACCESS_CONTROL = "Access-Control-Allow-Origin";
-
public static void main(String[] args){
SpringApplication.run(AssistDBBackendApplication.class, args);
}
-
- @Bean
- public CorsFilter corsFilter() {
- CorsConfiguration corsConfiguration = new CorsConfiguration();
- corsConfiguration.setAllowCredentials(true);
- corsConfiguration.setAllowedOrigins(Arrays.asList("http://178.18.0.4:9002", "http://localhost:9002"));
- corsConfiguration.setAllowedHeaders(Arrays.asList("Origin", ACCESS_CONTROL, "Content-Type",
- "Accept", "Authorization", "Origin, Accept", "X-Requested-With",
- "Access-Control-Request-Method", "Access-Control-Request-Headers"));
- corsConfiguration.setExposedHeaders(Arrays.asList("Origin", "Content-Type", "Accept", "Authorization",
- ACCESS_CONTROL, ACCESS_CONTROL, "Access-Control-Allow-Credentials"));
- corsConfiguration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
- UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
- urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
- return new CorsFilter(urlBasedCorsConfigurationSource);
- }
-
}
diff --git a/src/main/java/com/apside/assist/db/backend/controller/InfoColumnController.java b/src/main/java/com/apside/assist/db/backend/controller/InfoColumnController.java
index 88f47c6..72e18ab 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/InfoColumnController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/InfoColumnController.java
@@ -3,7 +3,6 @@ package com.apside.assist.db.backend.controller;
import com.apside.assist.db.backend.model.InfoColumn;
import com.apside.assist.db.backend.service.InfoColumnService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -17,8 +16,12 @@ import java.util.Optional;
@RequestMapping("/api")
@Slf4j
public class InfoColumnController {
- @Autowired
- private InfoColumnService infoColumnService;
+ public static final String ERROR_COLUMNS = "Error occurred while fetching columns";
+ private final InfoColumnService infoColumnService;
+
+ public InfoColumnController(InfoColumnService infoColumnService) {
+ this.infoColumnService = infoColumnService;
+ }
/**
* Read - Get one column
@@ -29,11 +32,7 @@ public class InfoColumnController {
public ResponseEntity getColumn(@PathVariable("id") final Long id) {
log.debug("Start GetColumn - Get Request - with id: " + id);
Optional infoColumn = infoColumnService.getColumn(id);
- if(infoColumn.isPresent()) {
- return ResponseEntity.ok(infoColumn.get());
- } else {
- return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
- }
+ return infoColumn.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).build());
}
/**
@@ -47,7 +46,7 @@ public class InfoColumnController {
Iterable columns = infoColumnService.getAllColumns();
return ResponseEntity.ok(columns);
} catch (Exception e){
- log.error("Error occurred while fetching columns", e);
+ log.error(ERROR_COLUMNS, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@@ -63,7 +62,7 @@ public class InfoColumnController {
Iterable columnsSelected = infoColumnService.getSelectedColumns(table, schema);
return ResponseEntity.ok(columnsSelected);
} catch (Exception e){
- log.error("Error occurred while fetching columns", e);
+ log.error(ERROR_COLUMNS, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@@ -75,7 +74,7 @@ public class InfoColumnController {
Iterable columnsForJoin = infoColumnService.getColumnsForJoin(firstTable, secondTable, firstSchema, secondSchema);
return ResponseEntity.ok(columnsForJoin);
} catch (Exception e){
- log.error("Error occurred while fetching columns", e);
+ log.error(ERROR_COLUMNS, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@@ -89,7 +88,7 @@ public class InfoColumnController {
Iterable columnsForJoin = infoColumnService.getColumnsForJoinTwo(tablesList, schemasList);
return ResponseEntity.ok(columnsForJoin);
} catch (Exception e){
- log.error("Error occurred while fetching columns", e);
+ log.error(ERROR_COLUMNS, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
diff --git a/src/main/java/com/apside/assist/db/backend/controller/InfoTableController.java b/src/main/java/com/apside/assist/db/backend/controller/InfoTableController.java
index 8f474cc..bf002f0 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/InfoTableController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/InfoTableController.java
@@ -3,7 +3,6 @@ package com.apside.assist.db.backend.controller;
import com.apside.assist.db.backend.model.InfoTable;
import com.apside.assist.db.backend.service.InfoTableService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -14,9 +13,13 @@ import java.util.Optional;
@RequestMapping("/api")
@Slf4j
public class InfoTableController {
- @Autowired
- private InfoTableService infoTableService;
+ public static final String ERROR_DELETING_TABLES = "Error occurred while deleting tables";
+ private final InfoTableService infoTableService;
+
+ public InfoTableController(InfoTableService infoTableService) {
+ this.infoTableService = infoTableService;
+ }
/**
* Read - Get one table
@@ -28,11 +31,7 @@ public class InfoTableController {
log.debug("Start getTable - Get Request - with id: " + id);
Optional infoTable = infoTableService.getTable(id);
- if (infoTable.isPresent()) {
- return ResponseEntity.ok(infoTable.get());
- } else {
- return ResponseEntity.notFound().build();
- }
+ return infoTable.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
}
/**
@@ -100,7 +99,7 @@ public class InfoTableController {
infoTableService.deleteAllTable();
return ResponseEntity.ok().build();
} catch (Exception e) {
- log.error("Error occurred while deleting tables", e);
+ log.error(ERROR_DELETING_TABLES, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@@ -112,7 +111,7 @@ public class InfoTableController {
Iterable tables = infoTableService.getTablesWithFilter(filter);
return ResponseEntity.ok(tables);
} catch (Exception e) {
- log.error("Error occurred while deleting tables", e);
+ log.error(ERROR_DELETING_TABLES, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
@@ -124,7 +123,7 @@ public class InfoTableController {
Iterable tables = infoTableService.getTablesWithFilterAndSchema(filter, schema);
return ResponseEntity.ok(tables);
} catch (Exception e) {
- log.error("Error occurred while deleting tables", e);
+ log.error(ERROR_DELETING_TABLES, e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
diff --git a/src/main/java/com/apside/assist/db/backend/controller/LinkInfoController.java b/src/main/java/com/apside/assist/db/backend/controller/LinkInfoController.java
index 570f88f..d30ea87 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/LinkInfoController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/LinkInfoController.java
@@ -3,7 +3,6 @@ package com.apside.assist.db.backend.controller;
import com.apside.assist.db.backend.model.LinkInfo;
import com.apside.assist.db.backend.service.LinkInfoService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -15,9 +14,11 @@ import java.util.Optional;
@Slf4j
public class LinkInfoController {
- @Autowired
- private LinkInfoService linkInfoService;
+ private final LinkInfoService linkInfoService;
+ public LinkInfoController(LinkInfoService linkInfoService) {
+ this.linkInfoService = linkInfoService;
+ }
/**
* Read - Get one Link
@@ -28,11 +29,7 @@ public class LinkInfoController {
public ResponseEntity getLinkInfo(@PathVariable("id") final Long id) {
log.debug("Start getLinkInfo - Get Request - with id: " + id);
Optional linkInfo = linkInfoService.getLinkInfo(id);
- if (linkInfo.isPresent()) {
- return ResponseEntity.ok(linkInfo.get());
- } else {
- return ResponseEntity.notFound().build();
- }
+ return linkInfo.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
}
/**
diff --git a/src/main/java/com/apside/assist/db/backend/controller/ResetDataController.java b/src/main/java/com/apside/assist/db/backend/controller/ResetDataController.java
index 105bf46..b0cf3d1 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/ResetDataController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/ResetDataController.java
@@ -1,10 +1,7 @@
package com.apside.assist.db.backend.controller;
-import java.io.IOException;
import com.apside.assist.db.backend.service.ResetDataService;
-import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -13,8 +10,12 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping("/api")
@Slf4j
public class ResetDataController {
- @Autowired
- private ResetDataService resetDataService;
+
+ private final ResetDataService resetDataService;
+
+ public ResetDataController(ResetDataService resetDataService) {
+ this.resetDataService = resetDataService;
+ }
@PostMapping("/reset")
public ResponseEntity resetData() {
diff --git a/src/main/java/com/apside/assist/db/backend/controller/ScriptController.java b/src/main/java/com/apside/assist/db/backend/controller/ScriptController.java
index 9c2af19..9533654 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/ScriptController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/ScriptController.java
@@ -1,25 +1,25 @@
package com.apside.assist.db.backend.controller;
import com.apside.assist.db.backend.model.LinkScriptTag;
-import com.apside.assist.db.backend.model.Script;;
+import com.apside.assist.db.backend.model.Script;
import com.apside.assist.db.backend.service.ScriptsService;
import lombok.extern.slf4j.Slf4j;
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import java.io.IOException;
-import java.net.URISyntaxException;
import java.util.List;
@RestController
@RequestMapping("/api")
@Slf4j
public class ScriptController {
- @Autowired
- ScriptsService scriptsService;
+
+ private final ScriptsService scriptsService;
+
+ public ScriptController(ScriptsService scriptsService) {
+ this.scriptsService = scriptsService;
+ }
@GetMapping("/scripts")
public ResponseEntity> getAllScripts() {
diff --git a/src/main/java/com/apside/assist/db/backend/controller/TagsController.java b/src/main/java/com/apside/assist/db/backend/controller/TagsController.java
index a733abb..73dc362 100644
--- a/src/main/java/com/apside/assist/db/backend/controller/TagsController.java
+++ b/src/main/java/com/apside/assist/db/backend/controller/TagsController.java
@@ -3,14 +3,10 @@ package com.apside.assist.db.backend.controller;
import com.apside.assist.db.backend.model.Tag;
import com.apside.assist.db.backend.service.TagsService;
import lombok.extern.slf4j.Slf4j;
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import java.io.IOException;
-import java.net.URISyntaxException;
import java.util.List;
@RestController
@@ -18,8 +14,11 @@ import java.util.List;
@Slf4j
public class TagsController {
- @Autowired
- private TagsService tagsService;
+ private final TagsService tagsService;
+
+ public TagsController(TagsService tagsService) {
+ this.tagsService = tagsService;
+ }
@GetMapping("/tags/all")
public ResponseEntity> getTags() {
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/GitServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/GitServiceImpl.java
index 18c9b55..5d48afd 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/GitServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/GitServiceImpl.java
@@ -1,41 +1,56 @@
package com.apside.assist.db.backend.service.implementation;
import com.apside.assist.db.backend.service.GitService;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.RemoteAddCommand;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
+import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.PathResource;
+import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
+import java.util.Objects;
@Service
@Slf4j
-public class GitServiceImpl implements GitService {
+public class GitServiceImpl implements GitService, InitializingBean {
- private final String tempDirectoryPath;
-
- public GitServiceImpl(){
- tempDirectoryPath = new File(System.getProperty("user.dir")).getParent() + "\\AssistDB_AdditionalFiles";
- }
- @Value("${USERNAME_GIT}")
+ private String tempDirectoryPath;
+ @Value("${assistDb.get.username}")
private String userGit;
- @Value("${ACCESS_TOKEN_GIT}")
+ @Value("${assistDb.get.password}")
private String accesToken;
- @Value("${URI_GIT}")
+ @Value("${assistDb.get.uri}")
private String uriGit;
private static final String NAME_URI = "origin";
private static final String COMMIT_MESSAGE = "commited";
private static final String BRANCH_NAME = "main";
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ log.info("Initialisation GIT");
+ Resource resource = new PathResource("git");
+ tempDirectoryPath = resource.getURI().getPath();
+ if (Objects.requireNonNull(resource.getFile().list()).length == 0) {
+ log.info("Récupération GIT");
+ Git.cloneRepository()
+ .setURI(uriGit)
+ .setDirectory(resource.getFile())
+ .call();
+ } else {
+ log.info("Fichiers GIT déjà existants");
+ }
+ }
+
@Override
public void pushToGit() throws IOException, GitAPIException, URISyntaxException {
log.debug("Starting pushToGit method.");
@@ -66,13 +81,13 @@ public class GitServiceImpl implements GitService {
git.pull().setCredentialsProvider(createCredential()).setRemote(NAME_URI).setRemoteBranchName(BRANCH_NAME).call();
log.info("Pull from Git successful.");
} catch (IOException|GitAPIException exception){
- log.error("Error push from git", exception);
+ log.error("Error pull from git", exception);
throw exception;
}
}
- public UsernamePasswordCredentialsProvider createCredential() {
+ private UsernamePasswordCredentialsProvider createCredential() {
return new UsernamePasswordCredentialsProvider(userGit, accesToken);
}
}
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/InfoColumnServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/InfoColumnServiceImpl.java
index b9963c1..dc9c4d3 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/InfoColumnServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/InfoColumnServiceImpl.java
@@ -1,22 +1,23 @@
package com.apside.assist.db.backend.service.implementation;
-import com.apside.assist.db.backend.repository.InfoColumnRepository;
import com.apside.assist.db.backend.model.InfoColumn;
+import com.apside.assist.db.backend.repository.InfoColumnRepository;
import com.apside.assist.db.backend.service.InfoColumnService;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
-@Data
@Service
@Slf4j
public class InfoColumnServiceImpl implements InfoColumnService {
- @Autowired
- private InfoColumnRepository infoColumnRepository;
+
+ private final InfoColumnRepository infoColumnRepository;
+
+ public InfoColumnServiceImpl(InfoColumnRepository infoColumnRepository) {
+ this.infoColumnRepository = infoColumnRepository;
+ }
@Override
public Optional getColumn(final Long id) {
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/InfoTableServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/InfoTableServiceImpl.java
index 68ae169..1c3abfd 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/InfoTableServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/InfoTableServiceImpl.java
@@ -1,22 +1,22 @@
package com.apside.assist.db.backend.service.implementation;
-import com.apside.assist.db.backend.model.InfoColumn;
import com.apside.assist.db.backend.repository.InfoTableRepository;
import com.apside.assist.db.backend.model.InfoTable;
import com.apside.assist.db.backend.service.InfoTableService;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
-@Data
@Service
@Slf4j
public class InfoTableServiceImpl implements InfoTableService {
- @Autowired
- private InfoTableRepository infoTableRepository;
+
+ private final InfoTableRepository infoTableRepository;
+
+ public InfoTableServiceImpl(InfoTableRepository infoTableRepository) {
+ this.infoTableRepository = infoTableRepository;
+ }
@Override
public Optional getTable(final Long id) {
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/LinkInfoServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/LinkInfoServiceImpl.java
index 326609b..aa63acd 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/LinkInfoServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/LinkInfoServiceImpl.java
@@ -3,19 +3,20 @@ package com.apside.assist.db.backend.service.implementation;
import com.apside.assist.db.backend.model.LinkInfo;
import com.apside.assist.db.backend.repository.LinkInfoRepository;
import com.apside.assist.db.backend.service.LinkInfoService;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Optional;
-@Data
@Service
@Slf4j
public class LinkInfoServiceImpl implements LinkInfoService {
- @Autowired
- private LinkInfoRepository linkInfoRepository;
+
+ private final LinkInfoRepository linkInfoRepository;
+
+ public LinkInfoServiceImpl(LinkInfoRepository linkInfoRepository) {
+ this.linkInfoRepository = linkInfoRepository;
+ }
@Override
public Optional getLinkInfo(final Long id) {
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/ResetDataServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/ResetDataServiceImpl.java
index b029b47..f097dbd 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/ResetDataServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/ResetDataServiceImpl.java
@@ -1,8 +1,8 @@
package com.apside.assist.db.backend.service.implementation;
-import com.apside.assist.db.backend.model.LinkInfo;
import com.apside.assist.db.backend.model.InfoColumn;
import com.apside.assist.db.backend.model.InfoTable;
+import com.apside.assist.db.backend.model.LinkInfo;
import com.apside.assist.db.backend.model.json.Column;
import com.apside.assist.db.backend.model.json.DataEnum;
import com.apside.assist.db.backend.model.json.Schema;
@@ -15,46 +15,38 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.PathResource;
+import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
-import org.springframework.beans.factory.annotation.Autowired;
import java.nio.file.Files;
-import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
-import java.util.stream.Collectors;
+import java.util.Objects;
@Service
@Slf4j
public class ResetDataServiceImpl implements ResetDataService, InitializingBean {
- @Autowired
- private InfoTableService infoTableService;
- @Autowired
- private InfoColumnService infoColumnService;
- @Autowired
- private LinkInfoService linkInfoService;
+ private final InfoTableService infoTableService;
+ private final InfoColumnService infoColumnService;
+ private final LinkInfoService linkInfoService;
- @Value("${PATH_FOR_DATA}")
- private String pathForData;
+ @Value("${assistDb.db.json.file}")
+ private String fileName;
private String result;
- private Path path;
- private static final String TABLE_STRING = "table";
- private static final String SCHEMA_STRING = "schema";
- private static final String DATA_STRING = "data";
- private static final String COLUMN_STRING = "columns";
- private static final String TABLE_TEXT_STRING = "table_text";
- private static final String NAME_STRING = "name";
- private static final String DATA_TYPE_STRING = "data_type";
- private static final String LENGTH_STRING = "length";
- private static final String COLUMN_TEXT_STRING = "column_text";
+ public ResetDataServiceImpl(InfoTableService infoTableService, InfoColumnService infoColumnService, LinkInfoService linkInfoService) {
+ this.infoTableService = infoTableService;
+ this.infoColumnService = infoColumnService;
+ this.linkInfoService = linkInfoService;
+ }
@Override
public void afterPropertiesSet() throws Exception {
- path = Paths.get(pathForData);
- result = new String(Files.readAllBytes(path));
+ Resource resource = new PathResource("json/" + fileName);
+ result = new String(Files.readAllBytes(Paths.get(resource.getURI())));
}
@Override
@@ -83,7 +75,7 @@ public class ResetDataServiceImpl implements ResetDataService, InitializingBean
}
}
}
- List filteredListOfColumns = listOfColumns.stream().distinct().collect(Collectors.toList());
+ List filteredListOfColumns = listOfColumns.stream().distinct().toList();
infoTableService.addMultipleTables(listOfTables);
infoColumnService.addMultipleColumns(filteredListOfColumns);
log.info("Insert all data into DB - success");
@@ -103,8 +95,8 @@ public class ResetDataServiceImpl implements ResetDataService, InitializingBean
descCol = "";
}
InfoColumn findCol = infoColumnService.getSpecCol(col.getName(), col.getData_type(), col.getLength(), descCol);
- int idCol = Math.toIntExact(findCol.getId());
- if (findCol != null){
+ if (Objects.nonNull(findCol)) {
+ int idCol = Math.toIntExact(findCol.getId());
listOfLink.add(new LinkInfo(dat.getTable(), schema.getSchema(), idCol));
}
}
diff --git a/src/main/java/com/apside/assist/db/backend/service/implementation/ScriptsServiceImpl.java b/src/main/java/com/apside/assist/db/backend/service/implementation/ScriptsServiceImpl.java
index 0a1dcce..8ad4e0f 100644
--- a/src/main/java/com/apside/assist/db/backend/service/implementation/ScriptsServiceImpl.java
+++ b/src/main/java/com/apside/assist/db/backend/service/implementation/ScriptsServiceImpl.java
@@ -4,14 +4,14 @@ import com.apside.assist.db.backend.model.LinkScriptTag;
import com.apside.assist.db.backend.model.Script;
import com.apside.assist.db.backend.service.GitService;
import com.apside.assist.db.backend.service.ScriptsService;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.InitializingBean;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.PathResource;
+import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;
import java.io.File;
@@ -21,27 +21,28 @@ import java.net.URISyntaxException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
@Service
@Slf4j
public class ScriptsServiceImpl implements ScriptsService, InitializingBean {
- @Autowired
- private GitService gitService;
- private String linkScriptTagPath;
+
+ private final GitService gitService;
private Path pathOfLink;
- private String allScriptsContent;
+
private JSONObject dataGlobalScripts;
private JSONArray dataLinkScriptsTags;
private String tempDirectoryPath;
private File scriptDirectory;
- @Value("${PATH_FOR_SCRIPT_JSON}")
- private String PATH_FOR_SCRIPT_JSON;
+ @Value("${assistDb.db.json.script}")
+ private String fileName;
+
+ @Value("${assistDb.db.json.directory}")
+ private String directory;
- @Value("${PATH_TO_SCRIPT_DIR}")
- private String PATH_TO_SCRIPT_DIR;
- private static final String USER_DIR_STRING = "user.dir";
private static final String FILE_NAME_STRING = "filename";
private static final String DESCRIPTION_STRING = "description";
private static final String TAG_NAME_STRING = "tagname";
@@ -49,17 +50,22 @@ public class ScriptsServiceImpl implements ScriptsService, InitializingBean {
private static final String TAGS_STRING = "tags";
private static final String DATA_STRING = "data";
+ public ScriptsServiceImpl(GitService gitService) {
+ this.gitService = gitService;
+ }
+
@Override
public void afterPropertiesSet() throws Exception {
- linkScriptTagPath = new File(System.getProperty(USER_DIR_STRING)).getParent() + PATH_FOR_SCRIPT_JSON;
- pathOfLink = Paths.get(linkScriptTagPath);
- tempDirectoryPath = new File(System.getProperty(USER_DIR_STRING)).getParent() + PATH_TO_SCRIPT_DIR;
- scriptDirectory = new File(tempDirectoryPath);
+ Resource resource = new PathResource("git/" + fileName);
+ pathOfLink = Paths.get(resource.getURI());
+ resource = new PathResource("git/" + directory);
+ tempDirectoryPath = resource.getURI().getPath();
+ scriptDirectory = resource.getFile();
}
@Override
public void initialize() throws IOException {
- allScriptsContent = new String((Files.readAllBytes(pathOfLink)));
+ String allScriptsContent = new String((Files.readAllBytes(pathOfLink)));
dataGlobalScripts = new JSONObject(allScriptsContent);
dataLinkScriptsTags = dataGlobalScripts.getJSONArray(DATA_STRING);
}
@@ -71,14 +77,16 @@ public class ScriptsServiceImpl implements ScriptsService, InitializingBean {
List