Skip to content

Commit

Permalink
refactor: allow user events to take in only what they need (#6545)
Browse files Browse the repository at this point in the history
  • Loading branch information
sighphyre committed Mar 14, 2024
1 parent ba53bd7 commit a2c4b8c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
14 changes: 8 additions & 6 deletions src/lib/features/events/event-service.ts
Expand Up @@ -104,16 +104,10 @@ export default class EventService {
};
}

/**
* @deprecated use storeUserEvent instead
*/
async storeEvent(event: IBaseEvent): Promise<void> {
return this.storeEvents([event]);
}

/**
* @deprecated use storeUserEvents instead
*/
async storeEvents(events: IBaseEvent[]): Promise<void> {
let enhancedEvents = events;
for (const enhancer of [this.enhanceEventsWithTags.bind(this)]) {
Expand All @@ -122,10 +116,18 @@ export default class EventService {
return this.eventStore.batchStore(enhancedEvents);
}

/**
* @deprecated this is tech debt, we should migrate to storeEvents and send the right
* userId and username parameters in IBaseEvent
*/
async storeUserEvent(event: IUserEvent): Promise<void> {
return this.storeUserEvents([event]);
}

/**
* @deprecated this is tech debt, we should migrate to storeEvents and send the right
* userId and username parameters in IBaseEvent
*/
async storeUserEvents(events: IUserEvent[]): Promise<void> {
let enhancedEvents = events.map(({ byUser, ...event }) => {
return {
Expand Down
24 changes: 15 additions & 9 deletions src/lib/types/events.ts
Expand Up @@ -1304,11 +1304,11 @@ export class PotentiallyStaleOnEvent extends BaseEvent {
}

export class UserCreatedEvent extends BaseEvent {
readonly data: IUserWithRootRole;
readonly data: IUserEventData;

constructor(eventData: {
createdBy: string | IUser;
userCreated: IUserWithRootRole;
userCreated: IUserEventData;
createdByUserId: number;
}) {
super(USER_CREATED, eventData.createdBy, eventData.createdByUserId);
Expand All @@ -1317,13 +1317,13 @@ export class UserCreatedEvent extends BaseEvent {
}

export class UserUpdatedEvent extends BaseEvent {
readonly data: IUserWithRootRole;
readonly preData: IUserWithRootRole;
readonly data: IUserEventData;
readonly preData: IUserEventData;

constructor(eventData: {
createdBy: string | IUser;
preUser: IUserWithRootRole;
postUser: IUserWithRootRole;
preUser: IUserEventData;
postUser: IUserEventData;
createdByUserId: number;
}) {
super(USER_UPDATED, eventData.createdBy, eventData.createdByUserId);
Expand All @@ -1333,19 +1333,25 @@ export class UserUpdatedEvent extends BaseEvent {
}

export class UserDeletedEvent extends BaseEvent {
readonly preData: IUserWithRootRole;
readonly preData: IUserEventData;

constructor(eventData: {
createdBy: string | IUser;
deletedUser: IUserWithRootRole;
deletedUser: IUserEventData;
createdByUserId: number;
}) {
super(USER_DELETED, eventData.createdBy, eventData.createdByUserId);
this.preData = mapUserToData(eventData.deletedUser);
}
}

function mapUserToData(user: IUserWithRootRole): any {
interface IUserEventData
extends Pick<
IUserWithRootRole,
'id' | 'name' | 'username' | 'email' | 'rootRole'
> {}

function mapUserToData(user: IUserEventData): any {
return {
id: user.id,
name: user.name,
Expand Down

0 comments on commit a2c4b8c

Please sign in to comment.