diff --git a/build.sbt b/build.sbt index 1910af7..0a25819 100644 --- a/build.sbt +++ b/build.sbt @@ -34,7 +34,7 @@ lazy val root = project .in(file(".")) .settings( name := "keycloak-event-listener-mqtt", - version := "0.1.0", + version := "0.2.0", scalaVersion := scala3Version, resolvers += "Akka library repository".at("https://repo.akka.io/maven"), libraryDependencies ++= keycloakDeps, diff --git a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttEventListenerProvider.scala b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttEventListenerProvider.scala index 2e412d0..205a2b0 100644 --- a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttEventListenerProvider.scala +++ b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttEventListenerProvider.scala @@ -70,11 +70,10 @@ class MqttEventListenerProvider( import concurrent.ExecutionContext.Implicits.global import MqttEventListenerProviderFactory.system - val topic: String = s"${mqttOptions.topic}/${payload.topic}" val payloadBytes: Array[Byte] = Json.encode(payload).toByteArray val msg: MqttMessage = - MqttMessage(topic, ByteString.fromArray(payloadBytes)) + MqttMessage(mqttOptions.topic, ByteString.fromArray(payloadBytes)) .withRetained(mqttOptions.retained) val future: Future[Done] = Source.single(msg).runWith(mqttSink) diff --git a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttOptions.scala b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttOptions.scala index cf7b6df..90f89d5 100644 --- a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttOptions.scala +++ b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/MqttOptions.scala @@ -40,7 +40,7 @@ object MqttOptions: end fromConfig end MqttOptions -private final case class MqttOptions( +final case class MqttOptions( topic: String, retained: Boolean, qos: MqttQoS diff --git a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/Payload.scala b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/Payload.scala index a741c9e..3cbd14a 100644 --- a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/Payload.scala +++ b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/Payload.scala @@ -65,7 +65,7 @@ object Payload extends FromEvent[Payload]: end fromEvent end Payload -private final case class Payload( +final case class Payload( admin: Boolean, time: Long, realm: String, @@ -76,17 +76,4 @@ private final case class Payload( resourcePath: Option[String], representation: Option[String], error: Option[String] -) derives Codec: - private def result: String = if error.isDefined then "error" else "success" - - def topic: String = - if admin - then - resourceType match - case Some(rType) => - s"admin/${realm}/${result}/${rType.toLowerCase()}/${operationType.toLowerCase()}" - case None => throw new IllegalStateException - else - s"client/${realm}/${result}/${authDetails.clientId}/${operationType.toLowerCase()}" - end topic -end Payload +) derives Codec diff --git a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/PayloadAuthDetails.scala b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/PayloadAuthDetails.scala index 0fba816..ac123a9 100644 --- a/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/PayloadAuthDetails.scala +++ b/src/main/scala/net/dergrimm/keycloak/providers/events/mqtt/PayloadAuthDetails.scala @@ -48,7 +48,7 @@ object PayloadAuthDetails extends FromEvent[PayloadAuthDetails]: end fromEvent end PayloadAuthDetails -private final case class PayloadAuthDetails( +final case class PayloadAuthDetails( realmId: String, clientId: String, userId: String,