From b7d1424e0cc74f955ffd7e48dbee30eb822293fa Mon Sep 17 00:00:00 2001 From: Thomas Georgios Giannos Date: Fri, 5 Jan 2024 14:02:22 +0200 Subject: [PATCH] Code cleanup --- .../model/persist/DescriptionPersist.java | 2 +- .../PropertyDefinitionPersist.java | 15 +++++++++++++-- .../eu/eudat/service/user/UserService.java | 5 +++-- .../controllers/v2/DescriptionController.java | 5 ++--- .../controllers/v2/DmpBlueprintController.java | 10 ++-------- .../eu/eudat/controllers/v2/DmpController.java | 14 +++++--------- .../v2/ReferenceTypeController.java | 18 +++++++++++++----- .../eudat/controllers/v2/UserController.java | 3 +-- .../controllers/v2/UserSettingsController.java | 3 +-- 9 files changed, 41 insertions(+), 34 deletions(-) diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java index 23a54cb8f..52475549f 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/DescriptionPersist.java @@ -214,7 +214,7 @@ public class DescriptionPersist { .iff(() -> !this.isNull(item.getProperties())) .on(DescriptionPersist._properties) .over(item.getProperties()) - .using(() -> this.validatorFactory.validator(PropertyDefinitionPersist.PropertyDefinitionPersistValidator.class)), + .using(() -> this.validatorFactory.validator(PropertyDefinitionPersist.PropertyDefinitionPersistValidator.class).setStatus(item.getStatus())), this.spec() .iff(() -> item.getStatus() == DescriptionStatus.Finalized) .must(() -> !this.isNull(item.getReferences())) diff --git a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/PropertyDefinitionPersist.java b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/PropertyDefinitionPersist.java index 90f8664f2..b4099c311 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/PropertyDefinitionPersist.java +++ b/dmp-backend/core/src/main/java/eu/eudat/model/persist/descriptionproperties/PropertyDefinitionPersist.java @@ -1,10 +1,12 @@ package eu.eudat.model.persist.descriptionproperties; +import eu.eudat.commons.enums.DescriptionStatus; import eu.eudat.commons.validation.BaseValidator; import eu.eudat.commons.validation.ValidatorFactory; import eu.eudat.commons.validation.specification.Specification; import eu.eudat.convention.ConventionService; import eu.eudat.errorcode.ErrorThesaurusProperties; +import eu.eudat.model.persist.validation.StatusAware; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Scope; @@ -30,7 +32,7 @@ public class PropertyDefinitionPersist { @Component(PropertyDefinitionPersistValidator.ValidatorName) @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) - public static class PropertyDefinitionPersistValidator extends BaseValidator { + public static class PropertyDefinitionPersistValidator extends BaseValidator implements StatusAware { public static final String ValidatorName = "Description.PropertyDefinitionPersistValidator"; @@ -38,6 +40,8 @@ public class PropertyDefinitionPersist { private final ValidatorFactory validatorFactory; + private DescriptionStatus status; + protected PropertyDefinitionPersistValidator(ConventionService conventionService, ErrorThesaurusProperties errors, MessageSource messageSource, ValidatorFactory validatorFactory) { super(conventionService, errors); this.messageSource = messageSource; @@ -53,15 +57,22 @@ public class PropertyDefinitionPersist { protected List specifications(PropertyDefinitionPersist item) { return Arrays.asList( this.spec() + .iff(() -> this.status == DescriptionStatus.Finalized) .must(() -> !this.isNull(item.getFields())) .failOn(PropertyDefinitionPersist._fields).failWith(messageSource.getMessage("Validation_Required", new Object[]{PropertyDefinitionPersist._fields}, LocaleContextHolder.getLocale())), this.navSpec() - .iff(() -> !this.isNull(item.getFields())) + .iff(() -> this.status == DescriptionStatus.Finalized && !this.isNull(item.getFields())) .on(PropertyDefinitionPersist._fields) .over(item.getFields()) .using(() -> this.validatorFactory.validator(FieldPersist.FieldPersistValidator.class)) ); } + + @Override + public PropertyDefinitionPersistValidator setStatus(DescriptionStatus status) { + this.status = status; + return this; + } } } diff --git a/dmp-backend/core/src/main/java/eu/eudat/service/user/UserService.java b/dmp-backend/core/src/main/java/eu/eudat/service/user/UserService.java index a3fd6e486..43d92541c 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/service/user/UserService.java +++ b/dmp-backend/core/src/main/java/eu/eudat/service/user/UserService.java @@ -1,9 +1,7 @@ package eu.eudat.service.user; import com.fasterxml.jackson.core.JsonProcessingException; -import eu.eudat.model.DescriptionTemplateType; import eu.eudat.model.User; -import eu.eudat.model.persist.DescriptionTemplateTypePersist; import eu.eudat.model.persist.UserPersist; import eu.eudat.model.persist.UserRolePatchPersist; import gr.cite.tools.exception.MyApplicationException; @@ -20,8 +18,11 @@ import java.util.UUID; public interface UserService { User persist(UserPersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JsonProcessingException; + void updateLanguageMine(String language) throws InvalidApplicationException, JsonProcessingException; + void updateTimezoneMine(String timezone) throws JsonProcessingException; + void updateCultureMine(String culture) throws JsonProcessingException; void deleteAndSave(UUID id) throws MyForbiddenException, InvalidApplicationException; diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionController.java index f30bfef5f..e9c4aa2f0 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DescriptionController.java @@ -35,7 +35,6 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import org.slf4j.LoggerFactory; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; @@ -155,7 +154,7 @@ public class DescriptionController { @PostMapping("persist") @Transactional @ValidationFilterAnnotation(validator = DescriptionPersist.DescriptionPersistValidator.ValidatorName, argumentName = "model") - public Description persist(@MyValidate @RequestBody DescriptionPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JsonProcessingException { + public Description persist(@RequestBody DescriptionPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JsonProcessingException { logger.debug(new MapLogEntry("persisting" + Description.class.getSimpleName()).And("model", model).And("fieldSet", fieldSet)); Description persisted = this.descriptionService.persist(model, fieldSet); @@ -170,7 +169,7 @@ public class DescriptionController { @PostMapping("persist-status") @Transactional @ValidationFilterAnnotation(validator = DescriptionStatusPersist.DescriptionStatusPersistValidator.ValidatorName, argumentName = "model") - public Description persistStatus(@MyValidate @RequestBody DescriptionStatusPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException { + public Description persistStatus(@RequestBody DescriptionStatusPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException { logger.debug(new MapLogEntry("persisting" + Description.class.getSimpleName()).And("model", model).And("fieldSet", fieldSet)); Description persisted = this.descriptionService.persistStatus(model, fieldSet); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpBlueprintController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpBlueprintController.java index bea392e4a..43182610f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpBlueprintController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpBlueprintController.java @@ -23,7 +23,6 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import jakarta.transaction.Transactional; import jakarta.xml.bind.JAXBException; import org.slf4j.LoggerFactory; @@ -88,7 +87,6 @@ public class DmpBlueprintController { long count = (lookup.getMetadata() != null && lookup.getMetadata().getCountAll()) ? query.count() : models.size(); this.auditService.track(AuditableAction.DmpBlueprint_Query, "lookup", lookup); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); return new QueryResult<>(models, count); } @@ -108,7 +106,6 @@ public class DmpBlueprintController { new AbstractMap.SimpleEntry("id", id), new AbstractMap.SimpleEntry("fields", fieldSet) )); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); return model; } @@ -116,7 +113,7 @@ public class DmpBlueprintController { @PostMapping("persist") @Transactional @ValidationFilterAnnotation(validator = DmpBlueprintPersist.DmpBlueprintPersistValidator.ValidatorName, argumentName = "model") - public DmpBlueprint persist(@MyValidate @RequestBody DmpBlueprintPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JAXBException, ParserConfigurationException, JsonProcessingException, TransformerException { + public DmpBlueprint persist(@RequestBody DmpBlueprintPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JAXBException, ParserConfigurationException, JsonProcessingException, TransformerException { logger.debug(new MapLogEntry("persisting" + DmpBlueprint.class.getSimpleName()).And("model", model).And("fieldSet", fieldSet)); this.censorFactory.censor(DmpBlueprintCensor.class).censor(fieldSet, null); @@ -126,7 +123,7 @@ public class DmpBlueprintController { new AbstractMap.SimpleEntry("model", model), new AbstractMap.SimpleEntry("fields", fieldSet) )); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); + return persisted; } @@ -138,7 +135,6 @@ public class DmpBlueprintController { this.dmpBlueprintService.deleteAndSave(id); this.auditService.track(AuditableAction.DmpBlueprint_Delete, "id", id); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); } @GetMapping("clone/{id}") @@ -153,7 +149,6 @@ public class DmpBlueprintController { new AbstractMap.SimpleEntry("id", id), new AbstractMap.SimpleEntry("fields", fieldSet) )); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); return model; } @@ -182,7 +177,6 @@ public class DmpBlueprintController { new AbstractMap.SimpleEntry("file", file), new AbstractMap.SimpleEntry("fields", fieldSet) )); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); return model; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpController.java index 4dd444d65..bc2e64c43 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/DmpController.java @@ -5,15 +5,12 @@ import eu.eudat.audit.AuditableAction; import eu.eudat.authorization.AuthorizationFlags; import eu.eudat.commons.validation.ValidationFilterAnnotation; import eu.eudat.data.DmpEntity; -import eu.eudat.file.transformer.model.file.FileFormat; import eu.eudat.model.Dmp; import eu.eudat.model.DmpUser; import eu.eudat.model.builder.DmpBuilder; import eu.eudat.model.censorship.DmpCensor; -import eu.eudat.model.file.FileEnvelope; import eu.eudat.model.persist.*; import eu.eudat.model.result.QueryResult; -import eu.eudat.models.data.dmp.DataManagementPlan; import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.query.DmpQuery; import eu.eudat.query.lookup.DmpLookup; @@ -30,7 +27,6 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import jakarta.xml.bind.JAXBException; import org.slf4j.LoggerFactory; import org.springframework.context.MessageSource; @@ -187,8 +183,8 @@ public class DmpController { List persisted = this.dmpService.assignUsers(id, model, fieldSet); this.auditService.track(AuditableAction.Dmp_Assign_Users, Map.ofEntries( - new AbstractMap.SimpleEntry("model", model), - new AbstractMap.SimpleEntry("fields", fieldSet) + new AbstractMap.SimpleEntry("model", model), + new AbstractMap.SimpleEntry("fields", fieldSet) )); return new QueryResult<>(persisted); @@ -203,8 +199,8 @@ public class DmpController { Dmp persisted = this.dmpService.removeUser(model, fieldSet); this.auditService.track(AuditableAction.Dmp_RemoveUser, Map.ofEntries( - new AbstractMap.SimpleEntry("model", model), - new AbstractMap.SimpleEntry("fields", fieldSet) + new AbstractMap.SimpleEntry("model", model), + new AbstractMap.SimpleEntry("fields", fieldSet) )); return new QueryResult<>(persisted); @@ -220,7 +216,7 @@ public class DmpController { @PostMapping("{id}/invite-users") @Transactional @ValidationFilterAnnotation(validator = DmpUserInvitePersist.DmpUserInvitePersistValidator.ValidatorName, argumentName = "model") - public ResponseEntity> inviteUsers(@PathVariable("id") UUID id,@RequestBody DmpUserInvitePersist model) throws InvalidApplicationException, JAXBException { + public ResponseEntity> inviteUsers(@PathVariable("id") UUID id, @RequestBody DmpUserInvitePersist model) throws InvalidApplicationException, JAXBException { logger.debug(new MapLogEntry("inviting users to dmp").And("model", model)); this.dmpService.inviteUsers(id, model); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/ReferenceTypeController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/ReferenceTypeController.java index bd9107bac..ebd7e322a 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/ReferenceTypeController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/ReferenceTypeController.java @@ -3,6 +3,7 @@ package eu.eudat.controllers.v2; import com.fasterxml.jackson.core.JsonProcessingException; import eu.eudat.audit.AuditableAction; import eu.eudat.authorization.AuthorizationFlags; +import eu.eudat.commons.validation.ValidationFilterAnnotation; import eu.eudat.controllers.BaseController; import eu.eudat.data.ReferenceTypeEntity; import eu.eudat.logic.services.ApiContext; @@ -26,7 +27,6 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import jakarta.transaction.Transactional; import jakarta.xml.bind.JAXBException; import org.slf4j.LoggerFactory; @@ -46,12 +46,19 @@ import java.util.UUID; public class ReferenceTypeController extends BaseController { private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(ReferenceTypeController.class)); + private final BuilderFactory builderFactory; + private final AuditService auditService; + private final CensorFactory censorFactory; + private final QueryFactory queryFactory; + private final MessageSource messageSource; + private final AuthorizationService authorizationService; + private final ReferenceTypeService referenceTypeService; @Autowired @@ -85,7 +92,7 @@ public class ReferenceTypeController extends BaseController { this.auditService.track(AuditableAction.ReferenceType_Query, "lookup", lookup); - return new QueryResult(models, count); + return new QueryResult<>(models, count); } @GetMapping("{id}") @@ -128,7 +135,8 @@ public class ReferenceTypeController extends BaseController { @PostMapping("persist") @Transactional - public ReferenceType persist(@MyValidate @RequestBody ReferenceTypePersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JAXBException, JsonProcessingException, InvalidApplicationException { + @ValidationFilterAnnotation(validator = ReferenceTypePersist.ReferenceTypePersistValidator.ValidatorName, argumentName = "model") + public ReferenceType persist(@RequestBody ReferenceTypePersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException, JAXBException, JsonProcessingException, InvalidApplicationException { logger.debug(new MapLogEntry("persisting" + ReferenceType.class.getSimpleName()).And("model", model).And("fieldSet", fieldSet)); this.censorFactory.censor(ReferenceTypeCensor.class).censor(fieldSet, null); @@ -138,14 +146,14 @@ public class ReferenceTypeController extends BaseController { new AbstractMap.SimpleEntry("model", model), new AbstractMap.SimpleEntry("fields", fieldSet) )); - //this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action); + return persisted; } @DeleteMapping("{id}") @Transactional public void delete(@PathVariable("id") UUID id) throws MyForbiddenException, InvalidApplicationException { - logger.debug(new MapLogEntry("retrieving" + ReferenceType.class.getSimpleName()).And("id", id)); + logger.debug(new MapLogEntry("retrieving" + ReferenceType.class.getSimpleName()).And("id", id)); this.referenceTypeService.deleteAndSave(id); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserController.java index 2e02478c8..2fdfdd710 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserController.java @@ -33,7 +33,6 @@ import gr.cite.tools.exception.MyNotFoundException; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import jakarta.xml.bind.JAXBException; import org.slf4j.LoggerFactory; import org.springframework.context.MessageSource; @@ -116,7 +115,7 @@ public class UserController { logger.debug("querying {}", User.class.getSimpleName()); this.censorFactory.censor(DmpAssociatedUserCensor.class).censor(lookup.getProject(), null); - + UserQuery query = lookup.enrich(this.queryFactory).dmpAssociated(true).isActive(IsActive.Active); List data = query.collectAs(lookup.getProject()); diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java index ab323dacc..74e03a893 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java @@ -23,7 +23,6 @@ import gr.cite.tools.fieldset.BaseFieldSet; import gr.cite.tools.fieldset.FieldSet; import gr.cite.tools.logging.LoggerService; import gr.cite.tools.logging.MapLogEntry; -import gr.cite.tools.validation.MyValidate; import jakarta.transaction.Transactional; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -112,7 +111,7 @@ public class UserSettingsController { @PostMapping("persist") @Transactional @ValidationFilterAnnotation(validator = UserSettingsPersist.UserSettingsPersistValidator.ValidatorName, argumentName = "model") - public UserSettings Persist(@MyValidate @RequestBody UserSettingsPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException { + public UserSettings Persist(@RequestBody UserSettingsPersist model, FieldSet fieldSet) throws MyApplicationException, MyForbiddenException, MyNotFoundException, InvalidApplicationException { logger.debug(new MapLogEntry("persisting" + UserSettings.class.getSimpleName()).And("model", model).And("fieldSet", fieldSet)); UserSettings persisted = this.settingsService.persist(model, fieldSet);