Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit e54d688c authored by Marco Amoia's avatar Marco Amoia
Browse files

Merge branch 'release' into 'main'

Release 1.1.0

See merge request !125
parents 50652044 531a524f
No related branches found
No related tags found
2 merge requests!126Update version to 1.2.0,!125Release 1.1.0
Pipeline #270547 failed
Showing
with 3217 additions and 3455 deletions
lombok.addLombokGeneratedAnnotation = true
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
PROJECT_VERSION_NUMBER="1.0.3"
PROJECT_VERSION_NUMBER="1.1.0"
......@@ -5,7 +5,7 @@
<parent>
<groupId>eu.europa.ec.simpl</groupId>
<artifactId>simpl-parent</artifactId>
<version>1.0.1</version>
<version>1.1.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
......@@ -13,13 +13,17 @@
<packaging>jar</packaging>
<name>onboarding</name>
<description>OnBoarding Microservice for SIMPL project</description>
<version>1.0.3</version>
<version>1.1.0</version>
<dependencies>
<dependency>
<groupId>eu.europa.ec.simpl</groupId>
<artifactId>simpl-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>eu.europa.ec.simpl</groupId>
<artifactId>simpl-api-iaa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......
package eu.europa.ec.simpl.onboarding.configurations;
import java.util.Arrays;
import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OpenApiConfig {
@Bean
public OpenApiCustomizer customGlobalResponses() {
var statusCodesToClear = Arrays.asList("400", "401", "403", "404", "409", "422");
return openApi -> openApi.getPaths()
.forEach((path, pathItem) -> pathItem.readOperations().forEach(operation -> {
operation.getResponses().remove("409");
for (String statusCode : statusCodesToClear) {
var response = operation.getResponses().get(statusCode);
if (response != null) {
response.setContent(null);
}
}
}));
}
}
......@@ -17,7 +17,7 @@ import org.springframework.scheduling.annotation.Scheduled;
@EnableSchedulerLock(defaultLockAtMostFor = "10m")
public class SchedulingConfig {
private RejectionOfStaleOnboardingRequestsTask rejectionOfStaleOnboardingRequestsTask;
private final RejectionOfStaleOnboardingRequestsTask rejectionOfStaleOnboardingRequestsTask;
public SchedulingConfig(RejectionOfStaleOnboardingRequestsTask rejectionOfStaleOnboardingRequestsTask) {
this.rejectionOfStaleOnboardingRequestsTask = rejectionOfStaleOnboardingRequestsTask;
......
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.common.model.dto.MimeTypeDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.MimeTypeDTO;
import eu.europa.ec.simpl.onboarding.services.MimeTypeService;
import eu.europa.ec.simpl.onboarding.services.impl.MimeTypeHelper;
import eu.europa.ec.simpl.onboarding.utils.MimeTypeUtil;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
......@@ -16,7 +16,16 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("mime-type")
......@@ -78,7 +87,7 @@ public class MimeTypeController {
})
@GetMapping("supported")
public List<String> getAllAvailableMimeTypes(@RequestParam(defaultValue = "") String search) {
return MimeTypeHelper.getAllAvailableMimeTypes(search);
return MimeTypeUtil.getAllAvailableMimeTypes(search);
}
@Operation(
......@@ -89,7 +98,7 @@ public class MimeTypeController {
name = "id",
description = "Unique identifier of the MIME type",
required = true,
schema = @Schema(type = "integer", format = "int64"))
schema = @Schema(type = "string", format = "uuid"))
},
responses = {
@ApiResponse(
......@@ -116,7 +125,7 @@ public class MimeTypeController {
name = "id",
description = "Unique identifier of the MIME type to be updated",
required = true,
schema = @Schema(type = "integer", format = "int64"))
schema = @Schema(type = "string", format = "uuid"))
},
requestBody =
@io.swagger.v3.oas.annotations.parameters.RequestBody(
......@@ -143,7 +152,7 @@ public class MimeTypeController {
name = "id",
description = "Unique identifier of the MIME type to be deleted",
required = true,
schema = @Schema(type = "integer", format = "int64"))
schema = @Schema(type = "string", format = "uuid"))
},
responses = {
@ApiResponse(responseCode = "204", description = "MIME type deleted successfully"),
......
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.api.onboarding.v1.exchanges.MimeTypesApi;
import eu.europa.ec.simpl.api.onboarding.v1.model.MimeTypeDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.PagedModelMimeTypeDTO;
import eu.europa.ec.simpl.onboarding.mappers.MimeTypeMapperV1;
import java.util.List;
import java.util.UUID;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1")
public class MimeTypeControllerV1 implements MimeTypesApi {
private final MimeTypeController controller;
private final MimeTypeMapperV1 mapper;
public MimeTypeControllerV1(MimeTypeController controller, MimeTypeMapperV1 mapper) {
this.controller = controller;
this.mapper = mapper;
}
@Override
public UUID createMimeType(MimeTypeDTO mimeTypeDTO) {
return controller.createMimeType(mapper.toV0(mimeTypeDTO));
}
@Override
public void deleteMimeType(UUID id) {
controller.deleteMimeType(id);
}
@Override
public List<String> getAllAvailableMimeTypes(String search) {
return controller.getAllAvailableMimeTypes(search);
}
@Override
public PagedModelMimeTypeDTO getAllMimeTypes(Integer page, Integer size, List<String> sort, Object filter) {
return mapper.toV1(
controller.getAllMimeTypes(PageRequest.of(page, size, Sort.by(sort.toArray(String[]::new)))));
}
@Override
public MimeTypeDTO getMimeType(UUID id) {
return mapper.toV1(controller.getMimeType(id));
}
@Override
public void updateMimeType(UUID id, MimeTypeDTO mimeTypeDTO) {
controller.updateMimeType(id, mapper.toV0(mimeTypeDTO));
}
}
......@@ -2,9 +2,12 @@ package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.common.exchanges.onboarding.OnboardingRequestExchange;
import eu.europa.ec.simpl.common.filters.OnboardingRequestFilter;
import eu.europa.ec.simpl.common.model.dto.*;
import eu.europa.ec.simpl.common.model.dto.onboarding.ApproveDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.CommentDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.DocumentDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.OnboardingRequestDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.RejectDTO;
import eu.europa.ec.simpl.common.responses.PageResponse;
import eu.europa.ec.simpl.onboarding.dto.RejectDTO;
import eu.europa.ec.simpl.onboarding.services.OnboardingRequestService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
......@@ -17,7 +20,17 @@ import org.springdoc.core.annotations.ParameterObject;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("onboarding-request")
......
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.api.onboarding.v1.exchanges.OnboardingRequestsManagementApi;
import eu.europa.ec.simpl.api.onboarding.v1.model.ApproveDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.CommentDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.DocumentDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.OnboardingRequestDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.PageResponseOnboardingRequestDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.RejectDTO;
import eu.europa.ec.simpl.api.onboarding.v1.model.SearchFilterParameterDTO;
import eu.europa.ec.simpl.onboarding.mappers.OnboardingRequestMapperV1;
import java.util.List;
import java.util.UUID;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1")
public class OnboardingRequestControllerV1 implements OnboardingRequestsManagementApi {
private final OnboardingRequestController controller;
private final OnboardingRequestMapperV1 mapper;
public OnboardingRequestControllerV1(OnboardingRequestController controller, OnboardingRequestMapperV1 mapper) {
this.controller = controller;
this.mapper = mapper;
}
@Override
public OnboardingRequestDTO addComment(UUID id, CommentDTO commentDTO) {
return mapper.toV1(controller.addComment(id, mapper.toV0(commentDTO)));
}
@Override
public OnboardingRequestDTO approve(UUID id, ApproveDTO approveDTO) {
return mapper.toV1(controller.approve(id, mapper.toV0(approveDTO)));
}
@Override
public OnboardingRequestDTO create(OnboardingRequestDTO onboardingRequestDTO) {
return mapper.toV1(controller.create(mapper.toV0(onboardingRequestDTO)));
}
@Override
public void deleteDocument(UUID onboardingRequestId, UUID documentId) {
controller.deleteDocument(onboardingRequestId, documentId);
}
@Override
public DocumentDTO getDocument(UUID onboardingRequestId, UUID documentId) {
return mapper.toV1(controller.getDocument(onboardingRequestId, documentId));
}
@Override
public OnboardingRequestDTO getOnboardingRequest(UUID onboardingRequestId) {
return mapper.toV1(controller.getOnboardingRequest(onboardingRequestId));
}
@Override
public OnboardingRequestDTO reject(UUID id, RejectDTO rejectDTO) {
return mapper.toV1(controller.reject(id, mapper.toV1(rejectDTO)));
}
@Override
public OnboardingRequestDTO requestAdditionalDocument(UUID id, DocumentDTO documentDTO) {
return mapper.toV1(controller.requestAdditionalDocument(id, mapper.toV0(documentDTO)));
}
@Override
public OnboardingRequestDTO requestRevision(UUID id) {
return mapper.toV1(controller.requestRevision(id));
}
@Override
public PageResponseOnboardingRequestDTO search(
Integer page, Integer size, List<String> sort, SearchFilterParameterDTO filter) {
return mapper.toV1(controller.search(
mapper.toV0(filter), PageRequest.of(page, size, Sort.by(sort.toArray(String[]::new)))));
}
@Override
public void setExpirationTimeframe(UUID id, Long expirationTimeframe) {
controller.setExpirationTimeframe(id, expirationTimeframe);
}
@Override
public OnboardingRequestDTO submit(UUID id) {
return mapper.toV1(controller.submit(id));
}
@Override
public OnboardingRequestDTO uploadDocument(UUID id, DocumentDTO documentDTO) {
return mapper.toV1(controller.uploadDocument(id, mapper.toV0(documentDTO)));
}
}
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.common.model.dto.OnboardingStatusDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.OnboardingStatusDTO;
import eu.europa.ec.simpl.onboarding.services.OnboardingStatusService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import jakarta.validation.constraints.NotBlank;
import java.util.List;
import java.util.UUID;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("onboarding-status")
......@@ -31,7 +37,9 @@ public class OnboardingStatusController {
content =
@Content(
mediaType = "application/json",
schema = @Schema(implementation = OnboardingStatusDTO.class))),
array =
@ArraySchema(
schema = @Schema(implementation = OnboardingStatusDTO.class)))),
@ApiResponse(responseCode = "401", description = "Access denied"),
@ApiResponse(responseCode = "403", description = "Forbidden: User does not have the required role"),
})
......
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.api.onboarding.v1.exchanges.OnboardingStatusesApi;
import eu.europa.ec.simpl.api.onboarding.v1.model.OnboardingStatusDTO;
import eu.europa.ec.simpl.onboarding.mappers.OnboardingStatusMapperV1;
import java.util.List;
import java.util.UUID;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1")
public class OnboardingStatusControllerV1 implements OnboardingStatusesApi {
private final OnboardingStatusController controller;
private final OnboardingStatusMapperV1 mapper;
public OnboardingStatusControllerV1(OnboardingStatusController controller, OnboardingStatusMapperV1 mapper) {
this.controller = controller;
this.mapper = mapper;
}
@Override
public List<OnboardingStatusDTO> getStatus() {
return mapper.toV1(controller.getStatus());
}
@Override
public void setLabel(UUID id, String label) {
controller.setLabel(id, label);
}
}
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.onboarding.dto.OnboardingTemplateDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.OnboardingTemplateDTO;
import eu.europa.ec.simpl.onboarding.exceptions.OnboardingTemplateNotFoundException;
import eu.europa.ec.simpl.onboarding.services.OnboardingTemplateService;
import io.swagger.v3.oas.annotations.Operation;
......@@ -14,7 +14,15 @@ import java.util.List;
import java.util.UUID;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("onboarding-template")
......
package eu.europa.ec.simpl.onboarding.controllers;
import eu.europa.ec.simpl.common.exchanges.onboarding.ParticipantTypeExchange;
import eu.europa.ec.simpl.common.model.dto.ParticipantTypeDTO;
import eu.europa.ec.simpl.common.model.dto.onboarding.ParticipantTypeDTO;
import eu.europa.ec.simpl.onboarding.services.ParticipantTypeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.ArraySchema;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment