@@ -15,12 +15,15 @@ import io.ktor.server.routing.post
1515import io.micrometer.prometheusmetrics.PrometheusMeterRegistry
1616import kotlinx.coroutines.Dispatchers
1717import kotlinx.coroutines.withContext
18+ import kotlinx.serialization.encodeToString
19+ import kotlinx.serialization.json.Json
1820import no.nav.emottak.cpa.auth.AZURE_AD_AUTH
1921import no.nav.emottak.cpa.feil.CpaValidationException
2022import no.nav.emottak.cpa.feil.MultiplePartnerException
2123import no.nav.emottak.cpa.feil.PartnerNotFoundException
2224import no.nav.emottak.cpa.persistence.CPARepository
2325import no.nav.emottak.cpa.persistence.gammel.PartnerRepository
26+ import no.nav.emottak.cpa.util.EventRegistrationService
2427import no.nav.emottak.cpa.validation.MessageDirection
2528import no.nav.emottak.cpa.validation.partyInfoHasRoleServiceActionCombo
2629import no.nav.emottak.cpa.validation.validate
@@ -38,6 +41,8 @@ import no.nav.emottak.message.model.ValidationResult
3841import no.nav.emottak.util.createX509Certificate
3942import no.nav.emottak.util.marker
4043import no.nav.emottak.utils.environment.getEnvVar
44+ import no.nav.emottak.utils.kafka.model.EventType
45+ import no.nav.emottak.utils.serialization.toEventDataJson
4146import no.nav.security.token.support.v3.TokenValidationContextPrincipal
4247import org.oasis_open.committees.ebxml_cppa.schema.cpp_cpa_2_0.CollaborationProtocolAgreement
4348import java.util.Date
@@ -174,11 +179,14 @@ fun Route.postCpa(cpaRepository: CPARepository) = post("/cpa") {
174179 }
175180}
176181
177- fun Route.validateCpa (cpaRepository : CPARepository , partnerRepository : PartnerRepository ) = post(" /cpa/validate/{$REQUEST_ID }" ) {
182+ fun Route.validateCpa (
183+ cpaRepository : CPARepository ,
184+ partnerRepository : PartnerRepository ,
185+ eventRegistrationService : EventRegistrationService
186+ ) = post(" /cpa/validate/{$REQUEST_ID }" ) {
178187 val validateRequest = call.receive(ValidationRequest ::class )
179188
180- // TODO: Skal brukes i kall mot Event-logging:
181- // val requestId = call.parameters[REQUEST_ID] ?: throw BadRequestException("Mangler $REQUEST_ID")
189+ val requestId = call.parameters[REQUEST_ID ] ? : throw BadRequestException (" Mangler $REQUEST_ID " )
182190
183191 try {
184192 log.info(validateRequest.marker(), " Validerer ebms mot CPA" )
@@ -213,7 +221,6 @@ fun Route.validateCpa(cpaRepository: CPARepository, partnerRepository: PartnerRe
213221
214222 val partnerId = runCatching { partnerRepository.findPartnerId(cpa.cpaid) }.getOrNull()
215223
216- // TODO: Event-logging OK
217224 call.respond(
218225 HttpStatusCode .OK ,
219226 ValidationResult (
@@ -232,22 +239,48 @@ fun Route.validateCpa(cpaRepository: CPARepository, partnerRepository: PartnerRe
232239 partnerId
233240 )
234241 )
242+
243+ val eventData = Json .encodeToString(
244+ mapOf (" sender" to fromParty.partyName)
245+ )
246+
247+ eventRegistrationService.registerEvent(
248+ EventType .MESSAGE_VALIDATED_AGAINST_CPA ,
249+ validateRequest,
250+ requestId,
251+ eventData
252+ )
235253 } catch (ebmsEx: EbmsException ) {
236- // TODO: Event-logging feil?
254+ eventRegistrationService.registerEvent(
255+ EventType .VALIDATION_AGAINST_CPA_FAILED ,
256+ validateRequest,
257+ requestId,
258+ ebmsEx.toEventDataJson()
259+ )
237260 log.error(validateRequest.marker(), ebmsEx.message, ebmsEx)
238261 call.respond(
239262 HttpStatusCode .OK ,
240263 ValidationResult (error = ebmsEx.feil)
241264 )
242265 } catch (ex: NotFoundException ) {
243- // TODO: Event-logging feil?
266+ eventRegistrationService.registerEvent(
267+ EventType .VALIDATION_AGAINST_CPA_FAILED ,
268+ validateRequest,
269+ requestId,
270+ ex.toEventDataJson()
271+ )
244272 log.error(validateRequest.marker(), " ${ex.message} " )
245273 call.respond(
246274 HttpStatusCode .OK ,
247275 ValidationResult (error = listOf (Feil (ErrorCode .DELIVERY_FAILURE , " ${ex.message} " )))
248276 )
249277 } catch (ex: Exception ) {
250- // TODO: Event-logging feil
278+ eventRegistrationService.registerEvent(
279+ EventType .VALIDATION_AGAINST_CPA_FAILED ,
280+ validateRequest,
281+ requestId,
282+ ex.toEventDataJson()
283+ )
251284 log.error(validateRequest.marker(), ex.message, ex)
252285 call.respond(
253286 HttpStatusCode .OK ,
0 commit comments