Skip to content

Commit

Permalink
Merge pull request #10 from davdarras/main
Browse files Browse the repository at this point in the history
feat: use generics and no generics :p
  • Loading branch information
ddecrulle committed May 24, 2023
2 parents 97de365 + 3542841 commit fe6e30f
Show file tree
Hide file tree
Showing 39 changed files with 355 additions and 433 deletions.
8 changes: 7 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>fr.insee.knowledge</groupId>
<artifactId>knowledge</artifactId>
<version>0.5.1</version>
<version>0.6.0</version>
<packaging>jar</packaging>
<name>Knowledge-Back-Office</name>
<description>Back-office services for Knowledge</description>
Expand Down Expand Up @@ -42,6 +42,12 @@
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

<!-- Swagger -->
<dependency>
<groupId>org.springdoc</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;
import lombok.extern.slf4j.Slf4j;
import org.bson.codecs.configuration.CodecProvider;
import org.bson.codecs.configuration.CodecRegistry;
import org.bson.codecs.pojo.PojoCodecProvider;
Expand All @@ -17,9 +18,8 @@
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;

@Configuration
@Slf4j
public class MongoConfiguration {
private static final Logger logger = LoggerFactory.getLogger(MongoConfiguration.class);

private CodecProvider pojoCodecProvider = PojoCodecProvider.builder().automatic(true).build();
private CodecRegistry pojoCodecRegistry = fromRegistries(getDefaultCodecRegistry(), fromProviders(pojoCodecProvider));

Expand All @@ -29,14 +29,14 @@ public class MongoConfiguration {
private String mongoUri;

private MongoClient mongoClient() {
logger.info("Create mongoClient");
log.info("Create mongoClient");
//we don't auth as admin
return MongoClients.create(mongoUri + "?authSource=" + database);
}

@Bean(name = "mongoDatabase")
public MongoDatabase mongoDatabase() {
logger.info("Connection to database");
log.info("Connection to database");
return mongoClient().getDatabase(database).withCodecRegistry(pojoCodecRegistry);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@

@Slf4j
public class PropertiesLogger implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {
private static final Logger LOGGER = LoggerFactory.getLogger(PropertiesLogger.class);

@Override
public void onApplicationEvent(@NonNull ApplicationEnvironmentPreparedEvent event) {
final Environment env = event.getEnvironment();
LOGGER.info("====== Environment and configuration ======");
LOGGER.info("Active profiles: {}", Arrays.toString(env.getActiveProfiles()));
log.info("====== Environment and configuration ======");
log.info("Active profiles: {}", Arrays.toString(env.getActiveProfiles()));
final MutablePropertySources sources = ((AbstractEnvironment) env).getPropertySources();
StreamSupport.stream(sources.spliterator(), false)
.filter(ps -> ps instanceof EnumerablePropertySource)
Expand All @@ -31,8 +30,8 @@ public void onApplicationEvent(@NonNull ApplicationEnvironmentPreparedEvent even
.distinct()
.filter(prop -> !(prop.contains("credentials") || prop.contains("password")))
.sorted()
.forEach(prop -> LOGGER.info("{}: {}", prop, env.getProperty(prop)));
LOGGER.info("===========================================");
.forEach(prop -> log.info("{}: {}", prop, env.getProperty(prop)));
log.info("===========================================");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package fr.insee.knowledge.controller.hierarchy;

import fr.insee.knowledge.domain.hierarchy.*;
import fr.insee.knowledge.service.GenericHierarchyService;
import fr.insee.knowledge.service.impl.HierarchyGsbpmServiceImpl;
import fr.insee.knowledge.service.impl.HierarchyProductServiceImpl;
import fr.insee.knowledge.service.impl.HierarchySvcServiceImpl;
import fr.insee.knowledge.service.impl.HierarchyUserServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

public class GenericHierarchyController<T extends Hierarchy> {

private final static Logger logger = LoggerFactory.getLogger(GenericHierarchyController.class);

private final GenericHierarchyService<T> hierarchyService;

public GenericHierarchyController(GenericHierarchyService<T> hierarchyService) {
this.hierarchyService = hierarchyService;
}

public ResponseEntity<T> getHierarchy() {
return new ResponseEntity<T>(hierarchyService.getHierarchy(), HttpStatus.OK);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package fr.insee.knowledge.controller.hierarchy;

import fr.insee.knowledge.domain.hierarchy.HierarchyGsbpm;
import fr.insee.knowledge.service.impl.HierarchyGsbpmServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "Hierarchy", description = "")
@RestController
@RequestMapping(path = "/hierarchy")
public class HierarchyGsbpmController extends GenericHierarchyController<HierarchyGsbpm> {
public HierarchyGsbpmController(HierarchyGsbpmServiceImpl hierarchyService) {
super(hierarchyService);
}

@Operation(summary = "Get Gsbpm")
@GetMapping(path = "/gsbpm")
public ResponseEntity<HierarchyGsbpm> getGsbpm() {
return getHierarchy();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package fr.insee.knowledge.controller.hierarchy;

import fr.insee.knowledge.domain.hierarchy.HierarchyProduct;
import fr.insee.knowledge.service.impl.HierarchyProductServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "Hierarchy", description = "")
@RestController
@RequestMapping(path = "/hierarchy")
public class HierarchyProductController extends GenericHierarchyController<HierarchyProduct> {
public HierarchyProductController(HierarchyProductServiceImpl hierarchyService) {
super(hierarchyService);
}

@Operation(summary = "Get Products")
@GetMapping(path = "/products")
public ResponseEntity<HierarchyProduct> getProducts() {
return getHierarchy();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package fr.insee.knowledge.controller.hierarchy;

import fr.insee.knowledge.domain.hierarchy.HierarchySvc;
import fr.insee.knowledge.service.impl.HierarchySvcServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "Hierarchy", description = "")
@RestController
@RequestMapping(path = "/hierarchy")
public class HierarchyServiceController extends GenericHierarchyController<HierarchySvc> {
public HierarchyServiceController(HierarchySvcServiceImpl hierarchyService) {
super(hierarchyService);
}

@Operation(summary = "Get Services")
@GetMapping(path = "/services")
public ResponseEntity<HierarchySvc> getServices() {
return getHierarchy();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package fr.insee.knowledge.controller.hierarchy;

import fr.insee.knowledge.domain.hierarchy.HierarchyProduct;
import fr.insee.knowledge.domain.hierarchy.HierarchyUser;
import fr.insee.knowledge.service.impl.HierarchyProductServiceImpl;
import fr.insee.knowledge.service.impl.HierarchyUserServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Tag(name = "Hierarchy", description = "")
@RestController
@RequestMapping(path = "/hierarchy")
public class HierarchyUserController extends GenericHierarchyController<HierarchyUser> {
public HierarchyUserController(HierarchyUserServiceImpl hierarchyService) {
super(hierarchyService);
}

@Operation(summary = "Get Users")
@GetMapping(path = "/users")
public ResponseEntity<HierarchyUser> getUsers() {
return getHierarchy();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package fr.insee.knowledge.controller.importdata;

import fr.insee.knowledge.service.*;
import fr.insee.knowledge.service.impl.HierarchyGsbpmServiceImpl;
import fr.insee.knowledge.service.impl.HierarchyProductServiceImpl;
import fr.insee.knowledge.service.impl.HierarchySvcServiceImpl;
import fr.insee.knowledge.service.impl.HierarchyUserServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -19,12 +23,13 @@
@RequestMapping(path = "/import")
public class ImportGithubController {
private ImportService importService;
private HierarchyProductSvc hierarchyProductSvc;
private HierarchyGsbpmSvc hierarchyGsbpmSvc;
private HierarchyUserSvc hierarchyUserSvc;
private HierarchyServiceSvc hierarchyServiceSvc;
private HierarchyProductServiceImpl hierarchyProductSvc;
private HierarchyGsbpmServiceImpl hierarchyGsbpmSvc;
private HierarchyUserServiceImpl hierarchyUserSvc;
private HierarchySvcServiceImpl hierarchyServiceSvc;

public ImportGithubController(ImportService importService, HierarchyProductSvc hierarchyProductSvc, HierarchyGsbpmSvc hierarchyGsbpmSvc, HierarchyUserSvc hierarchyUserSvc, HierarchyServiceSvc hierarchyServiceSvc, FunctionService functionService) {
public ImportGithubController(ImportService importService, HierarchyProductServiceImpl hierarchyProductSvc, HierarchyGsbpmServiceImpl hierarchyGsbpmSvc,
HierarchyUserServiceImpl hierarchyUserSvc, HierarchySvcServiceImpl hierarchyServiceSvc, FunctionService functionService) {
this.importService = importService;
this.hierarchyProductSvc = hierarchyProductSvc;
this.hierarchyGsbpmSvc = hierarchyGsbpmSvc;
Expand All @@ -45,28 +50,28 @@ public ResponseEntity<String> importFunctions() throws IOException {
@Operation(summary = "Import GSBPM")
@GetMapping(path = "/hierarchy/gsbpm")
public ResponseEntity<String> importGsbpm() throws IOException {
String result = hierarchyGsbpmSvc.importGsbpm();
String result = hierarchyGsbpmSvc.importHierarchy();
return new ResponseEntity<String>(result, HttpStatus.OK);
}

@Operation(summary = "Import Services")
@GetMapping(path = "/hierarchy/services")
public ResponseEntity<String> importServices() throws IOException {
String result = hierarchyServiceSvc.importService();
String result = hierarchyServiceSvc.importHierarchy();
return new ResponseEntity<String>(result, HttpStatus.OK);
}

@Operation(summary = "Import Products")
@GetMapping(path = "/hierarchy/products")
public ResponseEntity<String> importProducts() throws IOException {
String result = hierarchyProductSvc.importProduct();
String result = hierarchyProductSvc.importHierarchy();
return new ResponseEntity<String>(result, HttpStatus.OK);
}

@Operation(summary = "Import Users")
@GetMapping(path = "/hierarchy/user")
public ResponseEntity<String> importUsers() throws IOException {
String result = hierarchyUserSvc.importUser();
String result = hierarchyUserSvc.importHierarchy();
return new ResponseEntity<String>(result, HttpStatus.OK);
}

Expand Down
8 changes: 0 additions & 8 deletions src/main/java/fr/insee/knowledge/dao/HierarchyGsbpmDAO.java

This file was deleted.

9 changes: 0 additions & 9 deletions src/main/java/fr/insee/knowledge/dao/HierarchyProductDAO.java

This file was deleted.

8 changes: 0 additions & 8 deletions src/main/java/fr/insee/knowledge/dao/HierarchyServiceDAO.java

This file was deleted.

9 changes: 0 additions & 9 deletions src/main/java/fr/insee/knowledge/dao/HierarchyUserDAO.java

This file was deleted.

Loading

0 comments on commit fe6e30f

Please sign in to comment.