Skip to content
Snippets Groups Projects

feat: dispatch active mq message for contributor update event

Merged Florent Poittevin requested to merge fpo/manage-contributor-ssr-cache-update into master
Files
9
@@ -46,6 +46,7 @@ import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import ch.unige.solidify.SolidifyConstants;
import ch.unige.solidify.config.SolidifyEventPublisher;
import ch.unige.solidify.exception.SolidifyRuntimeException;
import ch.unige.solidify.model.PersonWithOrcid;
import ch.unige.solidify.service.PersonWithOrcidService;
@@ -55,6 +56,7 @@ import ch.unige.solidify.util.StringTool;
import ch.unige.aou.AouConstants;
import ch.unige.aou.config.AouProperties;
import ch.unige.aou.controller.AdminController;
import ch.unige.aou.message.ContributorUpdateMessage;
import ch.unige.aou.model.display.StructureValidationRight;
import ch.unige.aou.model.notification.NotificationType;
import ch.unige.aou.model.publication.Contributor;
@@ -64,6 +66,7 @@ import ch.unige.aou.model.security.User;
import ch.unige.aou.model.settings.Person;
import ch.unige.aou.model.settings.Structure;
import ch.unige.aou.model.settings.ValidationRight;
import ch.unige.aou.model.tool.CleanTool;
import ch.unige.aou.repository.PersonRepository;
import ch.unige.aou.specification.PersonSpecification;
import ch.unige.aou.specification.PublicationSubtypeSpecification;
@@ -106,6 +109,7 @@ public class PersonService extends AouResourceService<Person> implements PersonW
Person savedPerson = super.save(person);
this.storeOrcidInContributor(person);
this.sendContributorUpdateMessages(person.getResId());
return savedPerson;
}
@@ -209,8 +213,8 @@ public class PersonService extends AouResourceService<Person> implements PersonW
}
/**
* Return a list of StructureValidationRight which is the list of structures the person has validation rights on
* with their corresponding publication subtypes that the person can validate
* Return a list of StructureValidationRight which is the list of structures the person has validation rights on with their corresponding
* publication subtypes that the person can validate
*
* @param personId
* @return
@@ -246,8 +250,7 @@ public class PersonService extends AouResourceService<Person> implements PersonW
}
/**
* Return a map of [structureId ---> List of publication subytpes] representing the person validation rights
* Child structures are included
* Return a map of [structureId ---> List of publication subtypes] representing the person validation rights Child structures are included
*
* @param personId
* @return
@@ -377,6 +380,13 @@ public class PersonService extends AouResourceService<Person> implements PersonW
}
}
private void sendContributorUpdateMessages(String personId) {
List<String> unigeCnIndividus = this.getUnigeCnIndividus(personId);
for (String cnIndividu : unigeCnIndividus) {
SolidifyEventPublisher.getPublisher().publishEvent(new ContributorUpdateMessage(CleanTool.externalUidToCnIndividu(cnIndividu)));
}
}
public void storeOrcidInContributor(Person person) {
if (!StringTool.isNullOrEmpty(person.getOrcid())) {
List<String> unigeCnIndividus = this.getUnigeCnIndividus(person.getResId());
Loading