Split entities/security.ts into smaller files
parent
5741a04ac5
commit
e01f10c2aa
|
|
@ -0,0 +1,71 @@
|
||||||
|
import { assertProperties } from "@libreccm/ccm-apiclient-commons";
|
||||||
|
|
||||||
|
import {
|
||||||
|
PartyId,
|
||||||
|
PartyRoleMembership,
|
||||||
|
buildPartyRoleMembershipFromRecord,
|
||||||
|
} from "./party";
|
||||||
|
|
||||||
|
export interface Group {
|
||||||
|
partyId: number;
|
||||||
|
uuid: string;
|
||||||
|
name: string;
|
||||||
|
memberships: GroupUserMembership[];
|
||||||
|
roleMemberships: PartyRoleMembership[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GroupUserMembership {
|
||||||
|
membershipId: number;
|
||||||
|
uuid: string;
|
||||||
|
user: PartyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildGroupFromRecord(record: Record<string, unknown>): Group {
|
||||||
|
assertProperties(record, [
|
||||||
|
"partyId",
|
||||||
|
"uuid",
|
||||||
|
"name",
|
||||||
|
"memberships",
|
||||||
|
"roleMemberships",
|
||||||
|
]);
|
||||||
|
|
||||||
|
const membershipRecords = record.memberships as Record<string, unknown>[];
|
||||||
|
const roleMembershipRecords = record.roleMemberships as Record<
|
||||||
|
string,
|
||||||
|
unknown
|
||||||
|
>[];
|
||||||
|
|
||||||
|
return {
|
||||||
|
partyId: record.partyId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
name: record.name as string,
|
||||||
|
memberships: membershipRecords.map((r) =>
|
||||||
|
buildGroupUserMembershipFromRecord(r)
|
||||||
|
),
|
||||||
|
roleMemberships: roleMembershipRecords.map((r) =>
|
||||||
|
buildPartyRoleMembershipFromRecord(r)
|
||||||
|
),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildGroupUserMembershipFromRecord(
|
||||||
|
record: Record<string, unknown>
|
||||||
|
): GroupUserMembership {
|
||||||
|
assertProperties(record, ["membershipId", "uuid", "user"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
membershipId: record.membershipId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
user: buildPartyIdFromRecord(record.user as Record<string, unknown>),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildPartyIdFromRecord(record: Record<string, unknown>): PartyId {
|
||||||
|
assertProperties(record, ["partyId", "uuid", "name"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
partyId: record.partyId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
name: record.name as string,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
import {
|
||||||
|
assertProperties
|
||||||
|
} from "@libreccm/ccm-apiclient-commons";
|
||||||
|
|
||||||
|
import { RoleId, buildRoleIdFromRecord } from "./role";
|
||||||
|
|
||||||
|
export interface PartyId {
|
||||||
|
partyId: number;
|
||||||
|
uuid: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PartyRoleMembership {
|
||||||
|
membershipId: number;
|
||||||
|
uuid: string;
|
||||||
|
role: RoleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildPartyRoleMembershipFromRecord(
|
||||||
|
record: Record<string, unknown>
|
||||||
|
): PartyRoleMembership {
|
||||||
|
assertProperties(record, ["membershipId", "uuid", "role"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
membershipId: record.membershipId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
role: buildRoleIdFromRecord(record.role as Record<string, unknown>),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
import {
|
||||||
|
assertProperties,
|
||||||
|
LocalizedString,
|
||||||
|
} from "@libreccm/ccm-apiclient-commons";
|
||||||
|
import { CcmObjectId } from "./core";
|
||||||
|
import { TaskId } from "./workflow";
|
||||||
|
|
||||||
|
import { PartyId } from "./party";
|
||||||
|
|
||||||
|
export interface RoleAssignedTask {
|
||||||
|
taskAssignmentId: number;
|
||||||
|
uuid: string;
|
||||||
|
task: TaskId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Role {
|
||||||
|
roleId: number;
|
||||||
|
uuid: string;
|
||||||
|
name: string;
|
||||||
|
description: LocalizedString;
|
||||||
|
permissions: RolePermission[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RoleId {
|
||||||
|
roleId: number;
|
||||||
|
uuid: string;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RolePartyMembership {
|
||||||
|
membershipId: number;
|
||||||
|
uuid: string;
|
||||||
|
party: PartyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RolePermission {
|
||||||
|
permissionId: number;
|
||||||
|
uuid: string;
|
||||||
|
grantedPrivilege: string;
|
||||||
|
inherited: boolean;
|
||||||
|
object: CcmObjectId;
|
||||||
|
creationUser: PartyId;
|
||||||
|
creationDate: Date;
|
||||||
|
creationIp: string;
|
||||||
|
inheritedFrom: CcmObjectId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildRoleFromRecord(record: Record<string, unknown>): Role {
|
||||||
|
assertProperties(record, [
|
||||||
|
"roleId",
|
||||||
|
"uuid",
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
"permissions",
|
||||||
|
]);
|
||||||
|
|
||||||
|
const permissionRecords = record.permissions as Record<string, unknown>[];
|
||||||
|
|
||||||
|
return {
|
||||||
|
roleId: record.roleId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
name: record.name as string,
|
||||||
|
description: record.description as LocalizedString,
|
||||||
|
permissions: permissionRecords.map((r) =>
|
||||||
|
buildRolePermissionFromRecord(r)
|
||||||
|
),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildRoleIdFromRecord(record: Record<string, unknown>): RoleId {
|
||||||
|
assertProperties(record, ["roleId", "uuid", "name"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
roleId: record.roleId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
name: record.name as string,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildRolePartyMembershipFromRecord(
|
||||||
|
record: Record<string, unknown>
|
||||||
|
): RolePartyMembership {
|
||||||
|
assertProperties(record, ["membershipId", "uuid", "party"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
membershipId: record.membershipId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
party: record.party as PartyId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildRolePermissionFromRecord(
|
||||||
|
record: Record<string, unknown>
|
||||||
|
): RolePermission {
|
||||||
|
assertProperties(record, [
|
||||||
|
"permissionId",
|
||||||
|
"uuid",
|
||||||
|
"grantedPrivilege",
|
||||||
|
"inherited",
|
||||||
|
"object",
|
||||||
|
"creationUser",
|
||||||
|
"creationIp",
|
||||||
|
"inheritedFrom",
|
||||||
|
]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
permissionId: record.permissionId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
grantedPrivilege: record.grantedPrivilege as string,
|
||||||
|
inherited: record.inherited as boolean,
|
||||||
|
object: record.object as CcmObjectId,
|
||||||
|
creationUser: record.creationUser as PartyId,
|
||||||
|
creationDate: record.creationDate as Date,
|
||||||
|
creationIp: record.creationIp as string,
|
||||||
|
inheritedFrom: record.inheritedFrom as CcmObjectId,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,290 +0,0 @@
|
||||||
import {
|
|
||||||
assertProperties,
|
|
||||||
LocalizedString,
|
|
||||||
} from "@libreccm/ccm-apiclient-commons";
|
|
||||||
import { CcmObjectId } from "./core";
|
|
||||||
import { TaskId } from "./workflow";
|
|
||||||
|
|
||||||
export interface EmailAddressData {
|
|
||||||
address: string;
|
|
||||||
bouncing: boolean;
|
|
||||||
verified: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface GroupData {
|
|
||||||
partyId: number;
|
|
||||||
uuid: string;
|
|
||||||
name: string;
|
|
||||||
memberships: GroupUserMembership[];
|
|
||||||
roleMemberships: PartyRoleMembership[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface GroupUserMembership {
|
|
||||||
membershipId: number;
|
|
||||||
uuid: string;
|
|
||||||
user: PartyId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface PartyId {
|
|
||||||
partyId: number;
|
|
||||||
uuid: string;
|
|
||||||
name: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface PartyRoleMembership {
|
|
||||||
membershipId: number;
|
|
||||||
uuid: string;
|
|
||||||
role: RoleId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface RoleAssignedTask {
|
|
||||||
taskAssignmentId: number;
|
|
||||||
uuid: string;
|
|
||||||
task: TaskId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface RoleData {
|
|
||||||
roleId: number;
|
|
||||||
uuid: string;
|
|
||||||
name: string;
|
|
||||||
description: LocalizedString;
|
|
||||||
permissions: RolePermission[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface RoleId {
|
|
||||||
roleId: number;
|
|
||||||
uuid: string;
|
|
||||||
name: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface RolePartyMembership {
|
|
||||||
membershipId: number;
|
|
||||||
uuid: string;
|
|
||||||
party: PartyId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface RolePermission {
|
|
||||||
permissionId: number;
|
|
||||||
uuid: string;
|
|
||||||
grantedPrivilege: string;
|
|
||||||
inherited: boolean;
|
|
||||||
object: CcmObjectId;
|
|
||||||
creationUser: PartyId;
|
|
||||||
creationDate: Date;
|
|
||||||
creationIp: string;
|
|
||||||
inheritedFrom: CcmObjectId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface UserData {
|
|
||||||
partyId: number;
|
|
||||||
uuid: string;
|
|
||||||
name: string;
|
|
||||||
givenName: string;
|
|
||||||
familyName: string;
|
|
||||||
primaryEmailAddress: EmailAddressData;
|
|
||||||
emailAddresses: EmailAddressData[];
|
|
||||||
banned: boolean;
|
|
||||||
passwordResetRequired: boolean;
|
|
||||||
groupMemberships: UserGroupMembership[];
|
|
||||||
roleMemberships: PartyRoleMembership[];
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface UserGroupMembership {
|
|
||||||
membershipId: number;
|
|
||||||
uuid: string;
|
|
||||||
group: PartyId;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildGroupDataFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): GroupData {
|
|
||||||
assertProperties(record, [
|
|
||||||
"partyId",
|
|
||||||
"uuid",
|
|
||||||
"name",
|
|
||||||
"memberships",
|
|
||||||
"roleMemberships",
|
|
||||||
]);
|
|
||||||
|
|
||||||
const membershipRecords = record.memberships as Record<string, unknown>[];
|
|
||||||
const roleMembershipRecords = record.roleMemberships as Record<
|
|
||||||
string,
|
|
||||||
unknown
|
|
||||||
>[];
|
|
||||||
|
|
||||||
return {
|
|
||||||
partyId: record.partyId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
name: record.name as string,
|
|
||||||
memberships: membershipRecords.map((r) =>
|
|
||||||
buildGroupUserMembershipFromRecord(r)
|
|
||||||
),
|
|
||||||
roleMemberships: roleMembershipRecords.map((r) =>
|
|
||||||
buildPartyRoleMembershipFromRecord(r)
|
|
||||||
),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildGroupUserMembershipFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): GroupUserMembership {
|
|
||||||
assertProperties(record, ["membershipId", "uuid", "user"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
membershipId: record.membershipId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
user: buildPartyIdFromRecord(record.user as Record<string, unknown>),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildPartyIdFromRecord(record: Record<string, unknown>): PartyId {
|
|
||||||
assertProperties(record, ["partyId", "uuid", "name"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
partyId: record.partyId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
name: record.name as string,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildPartyRoleMembershipFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): PartyRoleMembership {
|
|
||||||
assertProperties(record, ["membershipId", "uuid", "role"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
membershipId: record.membershipId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
role: buildRoleIdFromRecord(record.role as Record<string, unknown>),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildRoleDataFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): RoleData {
|
|
||||||
assertProperties(record, [
|
|
||||||
"roleId",
|
|
||||||
"uuid",
|
|
||||||
"name",
|
|
||||||
"description",
|
|
||||||
"permissions",
|
|
||||||
]);
|
|
||||||
|
|
||||||
const permissionRecords = record.permissions as Record<string, unknown>[];
|
|
||||||
|
|
||||||
return {
|
|
||||||
roleId: record.roleId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
name: record.name as string,
|
|
||||||
description: record.description as LocalizedString,
|
|
||||||
permissions: permissionRecords.map((r) =>
|
|
||||||
buildRolePermissionFromRecord(r)
|
|
||||||
),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildRoleIdFromRecord(record: Record<string, unknown>): RoleId {
|
|
||||||
assertProperties(record, ["roleId", "uuid", "name"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
roleId: record.roleId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
name: record.name as string,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildRolePartyMembershipFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): RolePartyMembership {
|
|
||||||
assertProperties(record, ["membershipId", "uuid", "party"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
membershipId: record.membershipId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
party: record.party as PartyId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildRolePermissionFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): RolePermission {
|
|
||||||
assertProperties(record, [
|
|
||||||
"permissionId",
|
|
||||||
"uuid",
|
|
||||||
"grantedPrivilege",
|
|
||||||
"inherited",
|
|
||||||
"object",
|
|
||||||
"creationUser",
|
|
||||||
"creationIp",
|
|
||||||
"inheritedFrom",
|
|
||||||
]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
permissionId: record.permissionId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
grantedPrivilege: record.grantedPrivilege as string,
|
|
||||||
inherited: record.inherited as boolean,
|
|
||||||
object: record.object as CcmObjectId,
|
|
||||||
creationUser: record.creationUser as PartyId,
|
|
||||||
creationDate: record.creationDate as Date,
|
|
||||||
creationIp: record.creationIp as string,
|
|
||||||
inheritedFrom: record.inheritedFrom as CcmObjectId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildUserDataFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): UserData {
|
|
||||||
assertProperties(record, [
|
|
||||||
"partyId",
|
|
||||||
"uuid",
|
|
||||||
"name",
|
|
||||||
"givenName",
|
|
||||||
"familyName",
|
|
||||||
"primaryEmailAddress",
|
|
||||||
"emailAddresses",
|
|
||||||
"banned",
|
|
||||||
"passwordResetRequired",
|
|
||||||
"groupMemberships",
|
|
||||||
"roleMemberships",
|
|
||||||
]);
|
|
||||||
|
|
||||||
const groupMembershipRecords = record.groupMemberships as Record<
|
|
||||||
string,
|
|
||||||
unknown
|
|
||||||
>[];
|
|
||||||
const roleMembershipRecords = record.roleMemberships as Record<
|
|
||||||
string,
|
|
||||||
unknown
|
|
||||||
>[];
|
|
||||||
|
|
||||||
return {
|
|
||||||
partyId: record.partyId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
name: record.name as string,
|
|
||||||
givenName: record.givenName as string,
|
|
||||||
familyName: record.familyName as string,
|
|
||||||
primaryEmailAddress: record.primaryEmailAddress as EmailAddressData,
|
|
||||||
emailAddresses: record.emailAddresses as EmailAddressData[],
|
|
||||||
banned: record.banned as boolean,
|
|
||||||
passwordResetRequired: record.passwordResetRequired as boolean,
|
|
||||||
groupMemberships: groupMembershipRecords.map((r) =>
|
|
||||||
buildUserGroupMembershipFromRecord(r)
|
|
||||||
),
|
|
||||||
roleMemberships: roleMembershipRecords.map((r) =>
|
|
||||||
buildPartyRoleMembershipFromRecord(r)
|
|
||||||
),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function buildUserGroupMembershipFromRecord(
|
|
||||||
record: Record<string, unknown>
|
|
||||||
): UserGroupMembership {
|
|
||||||
assertProperties(record, ["membershipId", "uuid", "group"]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
membershipId: record.membershipId as number,
|
|
||||||
uuid: record.uuid as string,
|
|
||||||
group: record.party as PartyId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
import { assertProperties } from "@libreccm/ccm-apiclient-commons";
|
||||||
|
|
||||||
|
import {
|
||||||
|
PartyId,
|
||||||
|
PartyRoleMembership,
|
||||||
|
buildPartyRoleMembershipFromRecord,
|
||||||
|
} from "./party";
|
||||||
|
|
||||||
|
export interface EmailAddress {
|
||||||
|
address: string;
|
||||||
|
bouncing: boolean;
|
||||||
|
verified: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface User {
|
||||||
|
partyId: number;
|
||||||
|
uuid: string;
|
||||||
|
name: string;
|
||||||
|
givenName: string;
|
||||||
|
familyName: string;
|
||||||
|
primaryEmailAddress: EmailAddress;
|
||||||
|
emailAddresses: EmailAddress[];
|
||||||
|
banned: boolean;
|
||||||
|
passwordResetRequired: boolean;
|
||||||
|
groupMemberships: UserGroupMembership[];
|
||||||
|
roleMemberships: PartyRoleMembership[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UserGroupMembership {
|
||||||
|
membershipId: number;
|
||||||
|
uuid: string;
|
||||||
|
group: PartyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildUserFromRecord(record: Record<string, unknown>): User {
|
||||||
|
assertProperties(record, [
|
||||||
|
"partyId",
|
||||||
|
"uuid",
|
||||||
|
"name",
|
||||||
|
"givenName",
|
||||||
|
"familyName",
|
||||||
|
"primaryEmailAddress",
|
||||||
|
"emailAddresses",
|
||||||
|
"banned",
|
||||||
|
"passwordResetRequired",
|
||||||
|
"groupMemberships",
|
||||||
|
"roleMemberships",
|
||||||
|
]);
|
||||||
|
|
||||||
|
const groupMembershipRecords = record.groupMemberships as Record<
|
||||||
|
string,
|
||||||
|
unknown
|
||||||
|
>[];
|
||||||
|
const roleMembershipRecords = record.roleMemberships as Record<
|
||||||
|
string,
|
||||||
|
unknown
|
||||||
|
>[];
|
||||||
|
|
||||||
|
return {
|
||||||
|
partyId: record.partyId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
name: record.name as string,
|
||||||
|
givenName: record.givenName as string,
|
||||||
|
familyName: record.familyName as string,
|
||||||
|
primaryEmailAddress: record.primaryEmailAddress as EmailAddress,
|
||||||
|
emailAddresses: record.emailAddresses as EmailAddress[],
|
||||||
|
banned: record.banned as boolean,
|
||||||
|
passwordResetRequired: record.passwordResetRequired as boolean,
|
||||||
|
groupMemberships: groupMembershipRecords.map((r) =>
|
||||||
|
buildUserGroupMembershipFromRecord(r)
|
||||||
|
),
|
||||||
|
roleMemberships: roleMembershipRecords.map((r) =>
|
||||||
|
buildPartyRoleMembershipFromRecord(r)
|
||||||
|
),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function buildUserGroupMembershipFromRecord(
|
||||||
|
record: Record<string, unknown>
|
||||||
|
): UserGroupMembership {
|
||||||
|
assertProperties(record, ["membershipId", "uuid", "group"]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
membershipId: record.membershipId as number,
|
||||||
|
uuid: record.uuid as string,
|
||||||
|
group: record.party as PartyId,
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue