Skip to content

Commit b615fc3

Browse files
authored
Add status to organization membership and updated event (#975)
## Description Adds new `status` attribute to the organization membership object, and adds the `organization_membership.updated` event. ## Documentation Does this require changes to the WorkOS Docs? E.g. the [API Reference](https://workos.com/docs/reference) or code snippets need updates. ``` [x] Yes ``` If yes, link a related docs PR and add a docs maintainer as a reviewer. Their approval is required. workos/workos#25404
1 parent d968880 commit b615fc3

File tree

7 files changed

+23
-0
lines changed

7 files changed

+23
-0
lines changed

src/common/interfaces/event.interface.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,17 @@ export interface OrganizationMembershipAddedResponse extends EventResponseBase {
219219
data: OrganizationMembershipResponse;
220220
}
221221

222+
export interface OrganizationMembershipUpdated extends EventBase {
223+
event: 'organization_membership.updated';
224+
data: OrganizationMembership;
225+
}
226+
227+
export interface OrganizationMembershipUpdatedResponse
228+
extends EventResponseBase {
229+
event: 'organization_membership.updated';
230+
data: OrganizationMembershipResponse;
231+
}
232+
222233
export interface OrganizationMembershipRemoved extends EventBase {
223234
event: 'organization_membership.removed';
224235
data: OrganizationMembership;
@@ -249,6 +260,7 @@ export type Event =
249260
| UserUpdatedEvent
250261
| UserDeletedEvent
251262
| OrganizationMembershipAdded
263+
| OrganizationMembershipUpdated
252264
| OrganizationMembershipRemoved;
253265

254266
export type EventResponse =
@@ -270,6 +282,7 @@ export type EventResponse =
270282
| UserUpdatedEventResponse
271283
| UserDeletedEventResponse
272284
| OrganizationMembershipAddedResponse
285+
| OrganizationMembershipUpdatedResponse
273286
| OrganizationMembershipRemovedResponse;
274287

275288
export type EventName =
@@ -291,4 +304,5 @@ export type EventName =
291304
| 'user.updated'
292305
| 'user.deleted'
293306
| 'organization_membership.added'
307+
| 'organization_membership.updated'
294308
| 'organization_membership.removed';

src/common/serializers/event.serializer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export const deserializeEvent = (event: EventResponse): Event => {
8585
data: deserializeUser(event.data),
8686
};
8787
case 'organization_membership.added':
88+
case 'organization_membership.updated':
8889
case 'organization_membership.removed':
8990
return {
9091
...eventBase,

src/user-management/fixtures/list-organization-memberships.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"id": "om_01H5JQDV7R7ATEYZDEG0W5PRYS",
77
"user_id": "user_01H5JQDV7R7ATEYZDEG0W5PRYS",
88
"organization_id": "organization_01H5JQDV7R7ATEYZDEG0W5PRYS",
9+
"status": "active",
910
"created_at": "2023-07-18T02:07:19.911Z",
1011
"updated_at": "2023-07-18T02:07:19.911Z"
1112
}

src/user-management/fixtures/organization-membership.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"id": "om_01H5JQDV7R7ATEYZDEG0W5PRYS",
44
"user_id": "user_01H5JQDV7R7ATEYZDEG0W5PRYS",
55
"organization_id": "organization_01H5JQDV7R7ATEYZDEG0W5PRYS",
6+
"status": "active",
67
"created_at": "2023-07-18T02:07:19.911Z",
78
"updated_at": "2023-07-18T02:07:19.911Z"
89
}

src/user-management/interfaces/organization-membership.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export interface OrganizationMembership {
22
object: 'organization_membership';
33
id: string;
44
organizationId: string;
5+
status: 'active' | 'pending';
56
userId: string;
67
createdAt: string;
78
updatedAt: string;
@@ -11,6 +12,7 @@ export interface OrganizationMembershipResponse {
1112
object: 'organization_membership';
1213
id: string;
1314
organization_id: string;
15+
status: 'active' | 'pending';
1416
user_id: string;
1517
created_at: string;
1618
updated_at: string;

src/user-management/serializers/organization-membership.serializer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const deserializeOrganizationMembership = (
1010
id: organizationMembership.id,
1111
userId: organizationMembership.user_id,
1212
organizationId: organizationMembership.organization_id,
13+
status: organizationMembership.status,
1314
createdAt: organizationMembership.created_at,
1415
updatedAt: organizationMembership.updated_at,
1516
});

src/user-management/user-management.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,7 @@ describe('UserManagement', () => {
509509
id: 'om_01H5JQDV7R7ATEYZDEG0W5PRYS',
510510
userId: 'user_01H5JQDV7R7ATEYZDEG0W5PRYS',
511511
organizationId: 'organization_01H5JQDV7R7ATEYZDEG0W5PRYS',
512+
status: 'active',
512513
});
513514
});
514515
});
@@ -531,6 +532,7 @@ describe('UserManagement', () => {
531532
object: 'organization_membership',
532533
organizationId: 'organization_01H5JQDV7R7ATEYZDEG0W5PRYS',
533534
userId: 'user_01H5JQDV7R7ATEYZDEG0W5PRYS',
535+
status: 'active',
534536
},
535537
],
536538
listMetadata: {
@@ -577,6 +579,7 @@ describe('UserManagement', () => {
577579
object: 'organization_membership',
578580
organizationId: 'organization_01H5JQDV7R7ATEYZDEG0W5PRYS',
579581
userId: 'user_01H5JQDV7R7ATEYZDEG0W5PRYS',
582+
status: 'active',
580583
});
581584
});
582585
});

0 commit comments

Comments
 (0)