Skip to content

Commit

Permalink
feat: complete compliancy
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreaDel03 committed Jan 30, 2025
1 parent e2a300c commit 3be079a
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
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 io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.changes.ChangeSetDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.changes.data.GetDocByIdResDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.crud.DelDocsResDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.crud.GetDocsResDTO;
Expand Down Expand Up @@ -83,8 +85,8 @@ PostDocsResDTO uploadTransform(
FhirTypeEnum type,
@RequestParam(value = API_PATH_ROOTS_VAR, required = false)
@Parameter(description = VAL_DESC_ROOT)
@Schema(minLength = 0, maxLength = 10000)
List<@Size(max = 100) String> roots,
@ArraySchema(minItems = 0, maxItems = 100, schema = @Schema(implementation = ChangeSetDTO.TemplateIdRootItem.class, minLength = 0, maxLength = 10000))
List<ChangeSetDTO.TemplateIdRootItem> roots,
@RequestPart(API_PATH_FILE_VAR)
MultipartFile file
) throws IOException, OperationException, DocumentAlreadyPresentException, InvalidContentException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.controller.ITransformCTL;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.TransformDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.TransformDTO.Options;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.changes.ChangeSetDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.changes.data.GetDocByIdResDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.crud.DelDocsResDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.crud.GetDocsResDTO;
Expand All @@ -35,6 +36,7 @@
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.stream.Collectors;

import static it.finanze.sanita.fse2.ms.srvfhirmappingmanager.config.Constants.Logs.ERR_VAL_FILES_INVALID;

Expand All @@ -46,9 +48,12 @@ public class TransformCTL extends AbstractCTL implements ITransformCTL {
private ITransformSRV service;

@Override
public PostDocsResDTO uploadTransform(String uri, String version, FhirTypeEnum type, List<String> root, MultipartFile file) throws OperationException, DocumentAlreadyPresentException, InvalidContentException, DataProcessingException {
public PostDocsResDTO uploadTransform(String uri, String version, FhirTypeEnum type, List<ChangeSetDTO.TemplateIdRootItem> root, MultipartFile file) throws OperationException, DocumentAlreadyPresentException, InvalidContentException, DataProcessingException {
if (!isValidFile(file)) throw new InvalidContentException(ERR_VAL_FILES_INVALID);
service.insertTransformByComponents(root, version, uri, file, type);
List<String> rootStrings = root.stream()
.map(ChangeSetDTO.TemplateIdRootItem::getValue)
.collect(Collectors.toList());
service.insertTransformByComponents(rootStrings, version, uri, file, type);
return new PostDocsResDTO(getLogTraceInfo(), 1);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.TransformDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.Value;
import lombok.*;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
Expand All @@ -46,20 +43,28 @@ public class ChangeSetDTO {

@Value
public static class Payload {
/**
* The resource extension identifier
*/

@ArraySchema(
minItems = OA_ARRAY_FILES_MIN,
maxItems = OA_ARRAY_FILES_MAX,
schema = @Schema(implementation = String.class)
schema = @Schema(implementation = TemplateIdRootItem.class) // ✅ Uses wrapper class
)
List<@Size(min = OA_ANY_STRING_MIN, max = OA_ANY_STRING_MAX) String> templateIdRoot;
List<TemplateIdRootItem> templateIdRoot;

/**
* The resource filename
*/
@Size(min = OA_ANY_STRING_MIN, max = OA_ANY_STRING_MAX)
String version;
@Schema(minLength = OA_ANY_STRING_MIN, maxLength = OA_ANY_STRING_MAX) // ✅ Explicit constraints
String version;
}

@Value
@AllArgsConstructor
public static class TemplateIdRootItem {

@Getter
@Schema(maxLength = 1000)
String value;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.dto.response.changes.ChangeSetDTO;
import it.finanze.sanita.fse2.ms.srvfhirmappingmanager.repository.entity.TransformETY;

import java.util.stream.Collectors;

public final class ChangeSetUtility {

private ChangeSetUtility() {
Expand All @@ -32,6 +34,14 @@ private ChangeSetUtility() {
* @return
*/
public static ChangeSetDTO transformToChangeset(TransformETY entity) {
return new ChangeSetDTO(entity.getId(), new ChangeSetDTO.Payload(entity.getTemplateIdRoot(), entity.getVersion()));
return new ChangeSetDTO(
entity.getId(),
new ChangeSetDTO.Payload(
entity.getTemplateIdRoot().stream()
.map(ChangeSetDTO.TemplateIdRootItem::new)
.collect(Collectors.toList()),
entity.getVersion()
)
);
}
}

0 comments on commit 3be079a

Please sign in to comment.