import { ISCIMGroupMember, ISCIMResource } from "./Interfaces"; import { SCIMMeta } from "./Meta"; export class SCIMGroup implements ISCIMResource { public static fromPlain(plain: SCIMGroup): SCIMGroup { const group = new SCIMGroup(); group.id = plain.id; group.externalId = plain.externalId; group.displayName = plain.displayName; group.members = plain.members || []; return group; } public static fromRC(rc: ITeam, members: Array): SCIMGroup { const group = new SCIMGroup(); group.id = rc._id; group.externalId = rc._id; group.displayName = rc.name; group.meta.created = new Date(rc.createdAt); group.meta.lastModified = new Date(rc._updatedAt || rc.createdAt); group.members = members.map((member) => ({ value: member.user._id, $ref: `/Users/${member.user._id}`, display: member.user.name, type: "User", })); return group; } public readonly schemas = ["urn:ietf:params:scim:schemas:core:2.0:Group"]; public meta: SCIMMeta; public id: string; public externalId: string; public displayName: string; public members: Array = []; constructor() { this.meta = new SCIMMeta("Group", () => this.id); } }