Skip to content

Commit

Permalink
fix: subCategory still used and missing file details in hybrid client
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabien authored and fabiengo committed Oct 11, 2024
1 parent ef3deff commit 708b238
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void setCategoriesMapper(CategoriesMapper categoriesMapper) {
public abstract TenantModel toTenantModel(Tenant tenant, @Context UserApi userApi);

@Mapping(target = "name", expression = "java((document.getWatermarkFile() != null )? applicationBaseUrl + \"/" + PATH + "/\" + document.getName() : null)")
@Mapping(target = "files", expression = "java(userApi == null ? mapFiles(document.getFiles()) : null)")
@Mapping(target = "files", expression = "java((userApi == null || isHybrid(userApi))? mapFiles(document.getFiles()) : null)")
@MapDocumentCategories
public abstract DocumentModel toDocumentModel(Document document, @Context UserApi userApi);

Expand All @@ -61,8 +61,12 @@ public void setCategoriesMapper(CategoriesMapper categoriesMapper) {
@Mapping(target = "originalName", source = "documentFile.storageFile.name")
public abstract FileModel toFileModel(File documentFile);

boolean isHybrid(UserApi userApi) {
return userApi != null && userApi.getName().startsWith("hybrid-");
}

@AfterMapping
void modificationsAfterMapping(@MappingTarget TenantModel.TenantModelBuilder tenantModelBuilder) {
void modificationsAfterMapping(@MappingTarget TenantModel.TenantModelBuilder tenantModelBuilder, @Context UserApi userApi) {
TenantModel tenantModel = tenantModelBuilder.build();
ApartmentSharingModel apartmentSharingModel = tenantModel.getApartmentSharing();
if (apartmentSharingModel.getStatus() == TenantFileStatus.VALIDATED) {
Expand All @@ -74,7 +78,7 @@ void modificationsAfterMapping(@MappingTarget TenantModel.TenantModelBuilder ten
}
var isDossierUser = SecurityContextHolder.getContext().getAuthentication().getAuthorities().contains(new SimpleGrantedAuthority("SCOPE_dossier"));
var filePath = isDossierUser ? "/api/file/resource/" : "/api-partner/tenant/" + tenantModel.getId() + "/file/resource/";
setDocumentDeniedReasonsAndDocumentAndFilesRoutes(tenantModel.getDocuments(), filePath, false);
setDocumentDeniedReasonsAndDocumentAndFilesRoutes(tenantModel.getDocuments(), filePath, false, userApi);

tenantModel.getApartmentSharing().getTenants().stream().filter(t -> Objects.equals(t.getId(), tenantModel.getId())).forEach(
t -> {
Expand All @@ -84,17 +88,17 @@ void modificationsAfterMapping(@MappingTarget TenantModel.TenantModelBuilder ten
);
Optional.ofNullable(tenantModel.getApartmentSharing().getTenants())
.ifPresent(coTenantModels -> coTenantModels.forEach(coTenantModel -> {
setDocumentDeniedReasonsAndDocumentAndFilesRoutes(coTenantModel.getDocuments(), filePath, true);
setDocumentDeniedReasonsAndDocumentAndFilesRoutes(coTenantModel.getDocuments(), filePath, true, userApi);
Optional.ofNullable(coTenantModel.getGuarantors())
.ifPresent(guarantorModels -> guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), filePath, true)));
.ifPresent(guarantorModels -> guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), filePath, true, userApi)));
}));

Optional.ofNullable(tenantModel.getGuarantors())
.ifPresent(guarantorModels -> guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), filePath, false)));
.ifPresent(guarantorModels -> guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), filePath, false, userApi)));

}

private void setDocumentDeniedReasonsAndDocumentAndFilesRoutes(List<DocumentModel> list, String filePath, boolean previewOnly) {
private void setDocumentDeniedReasonsAndDocumentAndFilesRoutes(List<DocumentModel> list, String filePath, boolean previewOnly, UserApi userApi) {
Optional.ofNullable(list)
.ifPresent(documentModels -> documentModels.forEach(documentModel -> {
DocumentDeniedReasonsModel documentDeniedReasonsModel = documentModel.getDocumentDeniedReasons();
Expand All @@ -121,7 +125,7 @@ private void setDocumentDeniedReasonsAndDocumentAndFilesRoutes(List<DocumentMode
}
Optional.ofNullable(documentModel.getFiles())
.ifPresent(fileModels -> fileModels.forEach(fileModel -> {
if (previewOnly) {
if (previewOnly || isHybrid(userApi)) {
fileModel.setPath("");
} else {
fileModel.setPath(applicationBaseUrl + filePath + fileModel.getId());
Expand All @@ -131,7 +135,7 @@ private void setDocumentDeniedReasonsAndDocumentAndFilesRoutes(List<DocumentMode
}

@AfterMapping
void modificationsAfterMapping(@MappingTarget ConnectedTenantModel.ConnectedTenantModelBuilder connectedTenantModelBuilder) {
void modificationsAfterMapping(@MappingTarget ConnectedTenantModel.ConnectedTenantModelBuilder connectedTenantModelBuilder, @Context UserApi userApi) {
ConnectedTenantModel connectedTenantModel = connectedTenantModelBuilder.build();
fr.dossierfacile.api.front.model.dfc.apartment_sharing.ApartmentSharingModel apartmentSharingModel = connectedTenantModel.getApartmentSharing();
if (apartmentSharingModel.getStatus() == TenantFileStatus.VALIDATED) {
Expand All @@ -141,10 +145,10 @@ void modificationsAfterMapping(@MappingTarget ConnectedTenantModel.ConnectedTena
apartmentSharingModel.setToken(null);
apartmentSharingModel.setTokenPublic(null);
}
connectedTenantModel.getApartmentSharing().getTenants().forEach(tenantModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(tenantModel.getDocuments(), null, true));
connectedTenantModel.getApartmentSharing().getTenants().forEach(tenantModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(tenantModel.getDocuments(), null, true, userApi));
connectedTenantModel.getApartmentSharing().getTenants().forEach(tenantModel ->
Optional.ofNullable(tenantModel.getGuarantors()).ifPresent(guarantorModels ->
guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), null, true))));
guarantorModels.forEach(guarantorModel -> setDocumentDeniedReasonsAndDocumentAndFilesRoutes(guarantorModel.getDocuments(), null, true, userApi))));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public class DocumentModel {
private Long id;
private DocumentCategory documentCategory;
private DocumentSubCategory documentSubCategory;
private DocumentSubCategory subCategory; // TODO Deprecated v5
private Boolean noDocument;
private String customText;
private Integer monthlySum;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@
@Retention(RetentionPolicy.CLASS)
@Mapping(target = "documentCategory", expression = "java(categoriesMapper.mapCategory(document.getDocumentCategory(), userApi))")
@Mapping(target = "documentSubCategory", expression = "java(categoriesMapper.mapSubCategory(document.getDocumentSubCategory(), userApi))")
// TODO Deprecated v5
@Mapping(target = "subCategory", expression = "java(categoriesMapper.mapSubCategory(document.getDocumentSubCategory(), userApi))")
public @interface MapDocumentCategories {
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class DocumentModel {
private Long id;
private DocumentCategory documentCategory;
private DocumentSubCategory documentSubCategory;
private DocumentSubCategory subCategory; // TODO deprecated v5
private String customText;
private Integer monthlySum;
private DocumentStatus documentStatus;
Expand Down

0 comments on commit 708b238

Please sign in to comment.