Skip to content

Commit

Permalink
chore: fixes after merge and refactors for activityEvent logging
Browse files Browse the repository at this point in the history
  • Loading branch information
sksadjad committed Oct 7, 2024
1 parent d96f19e commit 69a3414
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 30 deletions.
43 changes: 14 additions & 29 deletions packages/data-store/src/eventLogger/EventLoggerStore.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Debug, { Debugger } from 'debug'
import { DataSource } from 'typeorm'
import { ActivityLoggingEvent, AuditLoggingEvent } from '@sphereon/ssi-sdk.core'
import { LoggingEventType, OrPromise } from '@sphereon/ssi-types'
import { OrPromise } from '@sphereon/ssi-types'
import { AbstractEventLoggerStore } from './AbstractEventLoggerStore'
import { AuditEventEntity, auditEventEntityFrom } from '../entities/eventLogger/AuditEventEntity'
import { auditEventFrom } from '../utils/eventLogger/MappingUtils'
import { GetActivityEventsArgs, GetAuditEventsArgs, StoreAuditEventArgs } from '../types'
import { activityEventEntityFrom, AuditEventEntity, auditEventEntityFrom } from '../entities/eventLogger/AuditEventEntity'
import { activityEventFrom, auditEventFrom } from '../utils/eventLogger/MappingUtils'
import {GetActivityEventsArgs, GetAuditEventsArgs, StoreActivityEventArgs, StoreAuditEventArgs} from '../types'

const debug: Debugger = Debug('sphereon:ssi-sdk:event-store')

Expand Down Expand Up @@ -46,7 +46,7 @@ export class EventLoggerStore extends AbstractEventLoggerStore {
where,
})

return result.map((event: AuditEventEntity) => this.activityEventFrom(event))
return result.map((event: AuditEventEntity) => activityEventFrom(event))
}

storeAuditEvent = async (args: StoreAuditEventArgs): Promise<AuditLoggingEvent> => {
Expand All @@ -60,29 +60,14 @@ export class EventLoggerStore extends AbstractEventLoggerStore {
return auditEventFrom(createdResult)
}

private activityEventFrom = (event: AuditEventEntity): ActivityLoggingEvent => {
return {
id: event.id,
type: LoggingEventType.ACTIVITY,
credentialType: event.credentialType,
sharePurpose: event.sharePurpose,
description: event.description,
timestamp: event.timestamp,
level: event.level,
correlationId: event.correlationId,
actionType: event.actionType,
actionSubType: event.actionSubType,
initiatorType: event.initiatorType,
partyAlias: event.partyAlias,
partyCorrelationId: event.partyCorrelationId,
partyCorrelationType: event.partyCorrelationType,
subSystemType: event.subSystemType,
system: event.system,
systemAlias: event.systemAlias,
systemCorrelationId: event.systemCorrelationId,
systemCorrelationIdType: event.systemCorrelationIdType,
...(event.data && { data: JSON.parse(event.data) }),
...(event.diagnosticData && { diagnosticData: JSON.parse(event.diagnosticData) }),
}
storeActivityEvent = async (args: StoreActivityEventArgs): Promise<ActivityLoggingEvent> => {
const { event } = args

const activityEventEntity: AuditEventEntity = activityEventEntityFrom(event)
const connection: DataSource = await this.dbConnection
debug('Storing activity event', activityEventEntity)
const createdResult: AuditEventEntity = await connection.getRepository(AuditEventEntity).save(activityEventEntity)

return activityEventFrom(createdResult)
}
}
30 changes: 29 additions & 1 deletion packages/data-store/src/utils/eventLogger/MappingUtils.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { AuditEventEntity } from '../../entities/eventLogger/AuditEventEntity'
import { AuditLoggingEvent } from '@sphereon/ssi-sdk.core'
import { ActivityLoggingEvent, AuditLoggingEvent } from '@sphereon/ssi-sdk.core'
import { replaceNullWithUndefined } from '../FormattingUtils'
import { LoggingEventType } from '@sphereon/ssi-types'

export const auditEventFrom = (event: AuditEventEntity): AuditLoggingEvent => {
const result: AuditLoggingEvent = {
id: event.id,
type: LoggingEventType.AUDIT,
description: event.description,
timestamp: event.timestamp,
level: event.level,
Expand All @@ -26,3 +28,29 @@ export const auditEventFrom = (event: AuditEventEntity): AuditLoggingEvent => {

return replaceNullWithUndefined(result)
}

export const activityEventFrom = (event: AuditEventEntity): ActivityLoggingEvent => {
return {
id: event.id,
type: LoggingEventType.ACTIVITY,
credentialType: event.credentialType,
sharePurpose: event.sharePurpose,
description: event.description,
timestamp: event.timestamp,
level: event.level,
correlationId: event.correlationId,
actionType: event.actionType,
actionSubType: event.actionSubType,
initiatorType: event.initiatorType,
partyAlias: event.partyAlias,
partyCorrelationId: event.partyCorrelationId,
partyCorrelationType: event.partyCorrelationType,
subSystemType: event.subSystemType,
system: event.system,
systemAlias: event.systemAlias,
systemCorrelationId: event.systemCorrelationId,
systemCorrelationIdType: event.systemCorrelationIdType,
...(event.data && { data: JSON.parse(event.data) }),
...(event.diagnosticData && { diagnosticData: JSON.parse(event.diagnosticData) }),
}
}

0 comments on commit 69a3414

Please sign in to comment.