34 lines
1.3 KiB
Kotlin
34 lines
1.3 KiB
Kotlin
package fr.dcproject.component.notification.email
|
|
|
|
import com.rabbitmq.client.ConnectionFactory
|
|
import fr.dcproject.component.follow.database.FollowArticleRepository
|
|
import fr.dcproject.component.follow.database.FollowCitizenRepository
|
|
import fr.dcproject.component.follow.database.FollowConstitutionRepository
|
|
import fr.dcproject.component.notification.NotificationConsumerAbstract
|
|
import org.slf4j.Logger
|
|
import org.slf4j.LoggerFactory
|
|
|
|
class NotificationEmailConsumer(
|
|
rabbitFactory: ConnectionFactory,
|
|
followConstitutionRepo: FollowConstitutionRepository,
|
|
followArticleRepo: FollowArticleRepository,
|
|
followCitizenRepo: FollowCitizenRepository,
|
|
private val notificationEmailSender: NotificationEmailSender,
|
|
private val exchangeName: String,
|
|
) : NotificationConsumerAbstract(rabbitFactory, followConstitutionRepo, followArticleRepo, followCitizenRepo) {
|
|
private val logger: Logger = LoggerFactory.getLogger(NotificationEmailConsumer::class.qualifiedName)
|
|
|
|
fun start() {
|
|
/* Config Rabbit */
|
|
declareQueue(QUEUE_NAME, exchangeName)
|
|
consumeQueue(QUEUE_NAME) { message ->
|
|
notificationEmailSender.sendEmail(message.follow)
|
|
logger.debug("EmailSend to: ${message.follow.createdBy.id}")
|
|
}
|
|
}
|
|
|
|
companion object {
|
|
private const val QUEUE_NAME = "email"
|
|
}
|
|
}
|