@@ -3,11 +3,15 @@ package no.nav.helsearbeidsgiver.plugins
3
3
import io.ktor.http.HttpStatusCode
4
4
import io.ktor.server.application.Application
5
5
import io.ktor.server.application.call
6
+ import io.ktor.server.request.receive
6
7
import io.ktor.server.response.respond
7
8
import io.ktor.server.routing.Routing
8
9
import io.ktor.server.routing.post
9
10
import io.ktor.server.routing.routing
11
+ import kotlinx.serialization.Serializable
12
+ import no.nav.helsearbeidsgiver.utils.AsStringSerializer
10
13
import no.nav.helsearbeidsgiver.utils.logger
14
+ import java.util.UUID
11
15
12
16
fun Application.configureAltinnEventRouting () {
13
17
routing {
@@ -18,11 +22,31 @@ fun Application.configureAltinnEventRouting() {
18
22
private fun Routing.mottaDialogportenEvent () {
19
23
post(" /dialogporten-event" ) {
20
24
try {
21
- logger().info(" Mottok Dialogporten event fra forventet IP" )
25
+ logger().info(" Mottok Dialogporten event." )
26
+ val dialogportenEvent = call.receive<DialogportenEvent >()
27
+ logger().info(" Mottok Dialogporten event ${dialogportenEvent.tilLogString()} " )
22
28
call.respond(HttpStatusCode .OK )
23
29
} catch (e: Exception ) {
24
30
logger().error(" Feil ved mottak av Dialogporten event" , e)
25
31
call.respond(HttpStatusCode .InternalServerError , " Klarte ikke motta dialogporten event" )
26
32
}
27
33
}
28
34
}
35
+
36
+ @Serializable
37
+ data class DialogportenEvent (
38
+ @Serializable(with = UuidSerializer ::class )
39
+ val resourceinstance : UUID ,
40
+ val type : String ,
41
+ val resource : String ,
42
+ val subject : String ,
43
+ val source : String ,
44
+ ) {
45
+ fun tilLogString (): String =
46
+ " DialogportenEvent(resourceinstance=$resourceinstance , type=$type , resource=$resource , subject=$subject , source=$source )"
47
+ }
48
+
49
+ object UuidSerializer : AsStringSerializer<UUID>(
50
+ serialName = " lps-client.kotlinx.UuidSerializer" ,
51
+ parse = UUID : :fromString,
52
+ )
0 commit comments