From f3ccbaa45e1b579077aea30b4cc4e005dd42b4e6 Mon Sep 17 00:00:00 2001 From: Philipp Potisk Date: Wed, 26 Feb 2025 18:48:21 +0100 Subject: [PATCH] Added WalletEvents --- .../kotlin/id/walt/commons/events/DidEvent.kt | 11 ++++--- .../kotlin/id/walt/commons/events/Event.kt | 18 +++++++---- .../id/walt/commons/events/IssuanceEvent.kt | 11 ++++--- .../kotlin/id/walt/commons/events/KeyEvent.kt | 13 ++++---- .../walt/commons/events/VerificationEvent.kt | 11 ++++--- .../commons/events/wallet/CredentialEvent.kt | 28 +++++++++++++++++ .../commons/events/wallet/IssuanceEvent.kt | 28 ++++++++++------- .../events/wallet/PresentationEvent.kt | 30 +++++++++++++++++++ 8 files changed, 117 insertions(+), 33 deletions(-) create mode 100644 waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/CredentialEvent.kt create mode 100644 waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/PresentationEvent.kt diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/DidEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/DidEvent.kt index db7a94892..17ce1a7ce 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/DidEvent.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/DidEvent.kt @@ -7,11 +7,14 @@ import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) @Serializable class DidEvent( + override val originator: String?, override val target: String, override val timestamp: Long, - override val status: EventStatus, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + val didEventType: DidEventType, val didMethod: String, - override val callId: String? = null, - override val error: String? = null -) : Event(Uuid.random().toHexString(), EventType.DIDEvent) +) : Event() diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/Event.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/Event.kt index fbe666b8c..fcdb0ca0a 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/Event.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/Event.kt @@ -2,17 +2,23 @@ package id.walt.commons.events import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid @Serializable -sealed class Event( - @SerialName("_id") val id: String, - val eventType: EventType, - val userId: String? // authenticated user +sealed class Action(val type: String) +@Serializable +sealed class Status(val type: String) + +@Serializable +abstract class Event @OptIn(ExperimentalUuidApi::class) constructor( + @SerialName("_id") val id: String = Uuid.random().toHexString(), ) { + abstract val originator: String? // user or system that initiated the event abstract val target: String // organization.tenant abstract val timestamp: Long - abstract val status: EventStatus - abstract val action: String // e.g. received/accepted/rejected + abstract val action: Action // e.g. received/accepted/rejected + abstract val status: Status // e.g. success/failure abstract val callId: String? // http tracing ID abstract val error: String? } diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/IssuanceEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/IssuanceEvent.kt index 0ac67587d..a8e8323c5 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/IssuanceEvent.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/IssuanceEvent.kt @@ -8,14 +8,17 @@ import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) @Serializable class IssuanceEvent( + override val originator: String?, override val target: String, override val timestamp: Long, - override val status: EventStatus, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + val sessionId: String, val credentialConfigurationId: String, val format: String?, val proofType: ProofType? = null, val holderId: String? = null, - override val callId: String? = null, - override val error: String? = null -) : Event(Uuid.random().toHexString(), EventType.IssuanceEvent) +) : Event() diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/KeyEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/KeyEvent.kt index 93f953a3a..c843a1b32 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/KeyEvent.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/KeyEvent.kt @@ -7,11 +7,14 @@ import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) @Serializable class KeyEvent( + override val originator: String?, override val target: String, override val timestamp: Long, - override val status: EventStatus, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + val keyEventType: KeyEventType, - val keyAlgorithm: String, - override val callId: String? = null, - override val error: String? = null -) : Event(Uuid.random().toHexString(), EventType.KeyEvent) + val keyAlgorithm: String +) : Event() diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/VerificationEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/VerificationEvent.kt index f04bf2710..516d9590c 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/VerificationEvent.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/VerificationEvent.kt @@ -7,14 +7,17 @@ import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) @Serializable class VerificationEvent( + override val originator: String?, override val target: String, override val timestamp: Long, - override val status: EventStatus, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + val sessionId: String, val format: String, val signatureAlgorithm: String, val credentialType: String? = null, val holderId: String? = null, - override val callId: String? = null, - override val error: String? = null -) : Event(Uuid.random().toHexString(), EventType.VerificationEvent) +) : Event() diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/CredentialEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/CredentialEvent.kt new file mode 100644 index 000000000..247d707ac --- /dev/null +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/CredentialEvent.kt @@ -0,0 +1,28 @@ +package id.walt.commons.events.wallet + +import id.walt.commons.events.* +import id.walt.commons.temp.UuidSerializer +import id.walt.oid4vc.data.ProofType +import kotlinx.serialization.Serializable +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid + +@OptIn(ExperimentalUuidApi::class) +@Serializable +class CredentialEvent( + override val originator: String?, + override val target: String, + override val timestamp: Long, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + + // custom event data + val tenant: String, + val account: String, + val credentialId: String, + val credentialStatus: String +) : Event() { + +} diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/IssuanceEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/IssuanceEvent.kt index 825614b05..bf600fd14 100644 --- a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/IssuanceEvent.kt +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/IssuanceEvent.kt @@ -1,22 +1,30 @@ package id.walt.commons.events.wallet -import id.walt.commons.events.Event -import id.walt.commons.events.EventStatus -import id.walt.commons.events.EventType +import id.walt.commons.events.* +import id.walt.commons.temp.UuidSerializer import id.walt.oid4vc.data.ProofType +import kotlinx.serialization.Serializable import kotlin.uuid.ExperimentalUuidApi import kotlin.uuid.Uuid @OptIn(ExperimentalUuidApi::class) +@Serializable class IssuanceEvent( + override val originator: String?, override val target: String, override val timestamp: Long, - override val status: EventStatus, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + + // custom event data + val tenant: String, + val account: String, val credentialOfferUrl: String, - val credentialConfigurationId: String, + val credentialId: String, val issuerId: String, - val type: String, - override val action: String, - override val callId: String? = null, - override val error: String? = null -) : Event(Uuid.random().toHexString(), EventType.IssuanceEvent, null) + val type: String +) : Event() { + +} diff --git a/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/PresentationEvent.kt b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/PresentationEvent.kt new file mode 100644 index 000000000..303c731db --- /dev/null +++ b/waltid-services/waltid-service-commons/src/main/kotlin/id/walt/commons/events/wallet/PresentationEvent.kt @@ -0,0 +1,30 @@ +package id.walt.commons.events.wallet + +import id.walt.commons.events.* +import id.walt.commons.temp.UuidSerializer +import id.walt.oid4vc.data.ProofType +import kotlinx.serialization.Serializable +import kotlin.uuid.ExperimentalUuidApi +import kotlin.uuid.Uuid + +@OptIn(ExperimentalUuidApi::class) +@Serializable +class PresentationEvent( + override val originator: String?, + override val target: String, + override val timestamp: Long, + override val action: Action, + override val status: Status, + override val callId: String?, + override val error: String?, + + // custom event data + val tenant: String, + val account: String, + val presentationRequestUrl: String, + val credentialId: String, + val verifierId: String, + val type: String +) : Event() { + +}