@@ -24,14 +24,20 @@ import no.nav.emottak.message.model.PayloadProcessing
24
24
import no.nav.emottak.message.model.SignatureDetails
25
25
import no.nav.emottak.util.marker
26
26
import no.nav.emottak.util.retrieveLoggableHeaderPairs
27
+ import no.nav.emottak.utils.common.parseOrGenerateUuid
28
+ import no.nav.emottak.utils.kafka.model.Event
29
+ import no.nav.emottak.utils.kafka.model.EventType
30
+ import no.nav.emottak.utils.kafka.service.EventLoggingService
31
+ import no.nav.emottak.utils.serialization.toEventDataJson
27
32
import kotlin.uuid.ExperimentalUuidApi
28
33
import kotlin.uuid.Uuid
29
34
30
35
@OptIn(ExperimentalUuidApi ::class )
31
36
fun Route.postEbmsSync (
32
37
validator : DokumentValidator ,
33
38
processingService : ProcessingService ,
34
- sendInService : SendInService
39
+ sendInService : SendInService ,
40
+ eventLoggingService : EventLoggingService
35
41
): Route = post(" /ebms/sync" ) {
36
42
log.info(" Receiving synchronous request" )
37
43
@@ -41,6 +47,10 @@ fun Route.postEbmsSync(
41
47
call.request.validateMime()
42
48
ebMSDocument = call.receiveEbmsDokument()
43
49
log.info(ebMSDocument.messageHeader().marker(loggableHeaders), " Melding mottatt" )
50
+ eventLoggingService.registerEvent(
51
+ EventType .MESSAGE_RECEIVED_VIA_HTTP ,
52
+ ebMSDocument
53
+ )
44
54
} catch (ex: MimeValidationException ) {
45
55
logger().error(
46
56
call.request.headers.marker(),
@@ -102,13 +112,17 @@ fun Route.postEbmsSync(
102
112
processingService.proccessSyncOut(messageProcessing.first, messageProcessing.second)
103
113
Pair <PayloadMessage , PayloadProcessing ?>(processedMessage, messageProcessing.second)
104
114
}.let {
115
+ val ebMSDocument = it.first.toEbmsDokument()
105
116
call.respondEbmsDokument(
106
- it.first.toEbmsDokument() .also { ebmsDocument ->
117
+ ebMSDocument .also { ebmsDocument ->
107
118
ebmsDocument.signer(it.second!! .signingCertificate)
108
119
}
109
120
)
110
121
log.info(it.first.marker(), " Melding ferdig behandlet og svar returnert" )
111
- // TODO: Event-logging OK
122
+ eventLoggingService.registerEvent(
123
+ EventType .MESSAGE_SENT_VIA_HTTP ,
124
+ it.first.toEbmsDokument()
125
+ )
112
126
return @post
113
127
}
114
128
} catch (ebmsException: EbmsException ) {
@@ -118,16 +132,57 @@ fun Route.postEbmsSync(
118
132
it.signer(signatureDetails)
119
133
}
120
134
log.info(ebmsMessage.marker(), " Created MessageError response" )
121
- // TODO: Event-logging Feil
135
+
136
+ eventLoggingService.registerEvent(
137
+ EventType .ERROR_WHILE_SENDING_MESSAGE_VIA_HTTP ,
138
+ ebMSDocument,
139
+ ebmsException.toEventDataJson()
140
+ )
141
+
122
142
call.respondEbmsDokument(it)
123
143
return @post
124
144
}
125
145
} catch (ex: Exception ) {
126
146
log.error(ebmsMessage.marker(), " Unknown error during message processing: ${ex.message} " , ex)
127
- // TODO: Event-logging Feil
147
+
148
+ eventLoggingService.registerEvent(
149
+ EventType .ERROR_WHILE_SENDING_MESSAGE_VIA_HTTP ,
150
+ ebMSDocument,
151
+ ex.toEventDataJson()
152
+ )
153
+
128
154
call.respond(
129
155
HttpStatusCode .InternalServerError ,
130
156
ex.parseAsSoapFault()
131
157
)
132
158
}
133
159
}
160
+
161
+ @OptIn(ExperimentalUuidApi ::class )
162
+ suspend fun EventLoggingService.registerEvent (
163
+ eventType : EventType ,
164
+ ebMSDocument : EbMSDocument ,
165
+ eventData : String = ""
166
+ ) {
167
+ log.debug(" Event reg. test: Registering event for requestId: ${ebMSDocument.requestId} " )
168
+
169
+ try {
170
+ val requestId = ebMSDocument.requestId.parseOrGenerateUuid()
171
+
172
+ log.debug(" Event reg. test: RequestId: $requestId " )
173
+
174
+ val event = Event (
175
+ eventType = eventType,
176
+ requestId = requestId,
177
+ contentId = " " ,
178
+ messageId = ebMSDocument.transform().messageId,
179
+ eventData = eventData
180
+ )
181
+
182
+ log.debug(" Event reg. test: Publishing event: $event " )
183
+ this .logEvent(event)
184
+ log.debug(" Event reg. test: Event published successfully" )
185
+ } catch (e: Exception ) {
186
+ log.error(" Event reg. test: Error while registering event: ${e.message} " , e)
187
+ }
188
+ }
0 commit comments