app/model/command/UpdatePillarCommand.scala (17 lines of code) (raw):
package model.command
import com.gu.tagmanagement.{PillarEvent, PillarEventType}
import model.{Pillar, PillarAudit}
import play.api.Logging
import repositories.{PillarAuditRepository, PillarRepository}
import services.KinesisStreams
import scala.concurrent.{Future, ExecutionContext}
case class UpdatePillarCommand(pillar: Pillar) extends Command with Logging {
type T = Pillar
override def process()(implicit username: Option[String], ec: ExecutionContext): Future[Option[Pillar]] = Future{
logger.info(s"updating pillar ${pillar.id}")
val result = PillarRepository.updatePillar(pillar)
KinesisStreams.pillarUpdateStream.publishUpdate(pillar.id.toString, PillarEvent(PillarEventType.Update, pillar.id, Some(Pillar.asThrift(pillar))))
PillarAuditRepository.upsertPillarAudit(PillarAudit.updated(pillar))
result
}
}