diff --git a/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/config/EventsPublisherConfig.kt b/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/config/EventsPublisherConfig.kt index 0e197bc351..9a10ec68b8 100644 --- a/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/config/EventsPublisherConfig.kt +++ b/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/config/EventsPublisherConfig.kt @@ -9,6 +9,7 @@ const val BIOSTUDIES_EXCHANGE = "biostudies-exchange" const val SUBMISSIONS_ROUTING_KEY = "bio.submission.published" const val SUBMISSIONS_RELEASE_ROUTING_KEY = "bio.submission.published.notification" const val SUBMISSIONS_REQUEST_ROUTING_KEY = "bio.submission.requested" +const val SUBMISSIONS_PARTIAL_UPDATE_ROUTING_KEY = "bio.submission.partials" const val SUBMISSIONS_FAILED_REQUEST_ROUTING_KEY = "bio.submission.failed" const val SECURITY_NOTIFICATIONS_ROUTING_KEY = "bio.security.notification" diff --git a/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/service/EventsPublisherService.kt b/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/service/EventsPublisherService.kt index 8c7c9e194f..0ab2202bf9 100644 --- a/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/service/EventsPublisherService.kt +++ b/events/events-publisher/src/main/kotlin/uk/ac/ebi/events/service/EventsPublisherService.kt @@ -34,7 +34,7 @@ class EventsPublisherService( fun submissionFailed(request: FailedSubmissionRequestMessage) = rabbitTemplate.convertAndSend(BIOSTUDIES_EXCHANGE, SUBMISSIONS_FAILED_REQUEST_ROUTING_KEY, request) - private fun submissionMessage(submission: ExtSubmission) = + fun submissionMessage(submission: ExtSubmission) = SubmissionMessage( accNo = submission.accNo, pagetabUrl = "${eventsProperties.instanceBaseUrl}/submissions/${submission.accNo}.json", diff --git a/submission/submission-handlers/src/main/kotlin/ac/uk/ebi/biostd/handlers/config/QueuesConfig.kt b/submission/submission-handlers/src/main/kotlin/ac/uk/ebi/biostd/handlers/config/QueuesConfig.kt index 45ddd1aa7a..c12575bdc3 100644 --- a/submission/submission-handlers/src/main/kotlin/ac/uk/ebi/biostd/handlers/config/QueuesConfig.kt +++ b/submission/submission-handlers/src/main/kotlin/ac/uk/ebi/biostd/handlers/config/QueuesConfig.kt @@ -12,6 +12,7 @@ const val SUBMISSIONS_ROUTING_KEY = "bio.submission.published" const val SUBMISSIONS_RELEASE_ROUTING_KEY = "bio.submission.published.notification" const val SECURITY_NOTIFICATIONS_ROUTING_KEY = "bio.security.notification" const val SUBMISSIONS_FAILED_REQUEST_ROUTING_KEY = "bio.submission.failed" +const val SUBMISSIONS_PARTIAL_UPDATE_ROUTING_KEY = "bio.submission.partials" const val LOG_QUEUE = "submission-submitted-log-queue" const val ST_LOG_QUEUE = "submission-submitted-st-queue" @@ -74,6 +75,10 @@ class QueuesConfig { fun partialUpdatesQueueBinding(exchange: TopicExchange): Binding = BindingBuilder.bind(partialUpdatesQueue()).to(exchange).with(SUBMISSIONS_ROUTING_KEY) + @Bean + fun partialUpdatesOnlyQueueBinding(exchange: TopicExchange): Binding = + BindingBuilder.bind(partialUpdatesQueue()).to(exchange).with(SUBMISSIONS_PARTIAL_UPDATE_ROUTING_KEY) + @Bean fun failedSubmissionLogQueueBinding(exchange: TopicExchange): Binding = BindingBuilder.bind(failedSubmissionsLogQueue()).to(exchange).with(SUBMISSIONS_FAILED_REQUEST_ROUTING_KEY) diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmissionConfig.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmissionConfig.kt index 72758940f6..87fa76a0b2 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmissionConfig.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/common/config/SubmissionConfig.kt @@ -54,7 +54,8 @@ class SubmissionConfig( subRepository: SubmissionQueryService, userPrivilegeService: IUserPrivilegesService, securityQueryService: ISecurityQueryService, - extSerializationService: ExtSerializationService + extSerializationService: ExtSerializationService, + eventsPublisherService: EventsPublisherService ): ExtSubmissionService = ExtSubmissionService( rabbitTemplate, @@ -62,7 +63,8 @@ class SubmissionConfig( subRepository, userPrivilegeService, securityQueryService, - extSerializationService + extSerializationService, + eventsPublisherService ) @Bean diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/submission/domain/service/ExtSubmissionService.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/submission/domain/service/ExtSubmissionService.kt index 3230709301..1a7ffbda7a 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/submission/domain/service/ExtSubmissionService.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/submission/domain/service/ExtSubmissionService.kt @@ -23,14 +23,16 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate import org.springframework.data.domain.Page import org.springframework.data.domain.PageImpl import uk.ac.ebi.events.config.BIOSTUDIES_EXCHANGE +import uk.ac.ebi.events.config.SUBMISSIONS_PARTIAL_UPDATE_ROUTING_KEY import uk.ac.ebi.events.config.SUBMISSIONS_REQUEST_ROUTING_KEY +import uk.ac.ebi.events.service.EventsPublisherService import uk.ac.ebi.extended.serialization.service.ExtSerializationService import java.io.File import java.time.OffsetDateTime private val logger = KotlinLogging.logger {} -@Suppress("TooManyFunctions") +@Suppress("TooManyFunctions", "LongParameterList") class ExtSubmissionService( private val rabbitTemplate: RabbitTemplate, private val submissionSubmitter: SubmissionSubmitter, @@ -38,6 +40,7 @@ class ExtSubmissionService( private val userPrivilegesService: IUserPrivilegesService, private val securityQueryService: ISecurityQueryService, private val extSerializationService: ExtSerializationService, + private val eventsPublisherService: EventsPublisherService ) { fun getExtendedSubmission(accNo: String): ExtSubmission = submissionQueryService.getExtByAccNo(accNo) @@ -50,7 +53,14 @@ class ExtSubmissionService( fun refreshSubmission(accNo: String, user: String): ExtSubmission { val submission = submissionQueryService.getExtByAccNo(accNo) - return submitExt(user, submission, emptyList(), MOVE) + val submissionRefreshed = submitExt(user, submission, emptyList(), MOVE) + rabbitTemplate.convertAndSend( + BIOSTUDIES_EXCHANGE, + SUBMISSIONS_PARTIAL_UPDATE_ROUTING_KEY, + eventsPublisherService.submissionMessage(submissionRefreshed) + ) + + return submissionRefreshed } fun reTriggerSubmission(accNo: String, version: Int): ExtSubmission {