Skip to content

Commit 03208c1

Browse files
committed
feat: update MemberService to use NamespaceMember for improved data handling
1 parent e03a10c commit 03208c1

1 file changed

Lines changed: 11 additions & 13 deletions

File tree

src/packages/ce/src/member/services/Member.service.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,22 @@ import memberAssignRoleMutation from "./mutations/Member.assignRoles.mutation.gr
1919
import memberDeleteMutation from "./mutations/Member.delete.mutation.graphql"
2020
import memberInviteMutation from "./mutations/Member.invite.mutation.graphql"
2121
import {View} from "@code0-tech/pictor/dist/utils/view";
22-
import {MemberView} from "@edition/member/services/Member.view";
2322

2423
export type MemberDependencies = {
2524
namespaceId: Namespace['id']
2625
}
2726

28-
export class MemberService extends ReactiveArrayService<MemberView, MemberDependencies> {
27+
export class MemberService extends ReactiveArrayService<NamespaceMember, MemberDependencies> {
2928

3029
private readonly client: GraphqlClient
3130
private i = 0
3231

33-
constructor(client: GraphqlClient, store: ReactiveArrayStore<View<MemberView>>) {
32+
constructor(client: GraphqlClient, store: ReactiveArrayStore<View<NamespaceMember>>) {
3433
super(store)
3534
this.client = client
3635
}
3736

38-
values(dependencies?: MemberDependencies): MemberView[] {
37+
values(dependencies?: MemberDependencies): NamespaceMember[] {
3938
const members = super.values()
4039
if (!dependencies?.namespaceId) return members
4140

@@ -56,7 +55,7 @@ export class MemberService extends ReactiveArrayService<MemberView, MemberDepend
5655
const nodes = res.data?.namespace?.members?.nodes ?? []
5756
nodes.forEach(member => {
5857
if (member && !this.hasById(member.id)) {
59-
this.set(this.i++, new View(new MemberView(member)))
58+
this.set(this.i++, new View(member))
6059
}
6160
})
6261
})
@@ -70,11 +69,11 @@ export class MemberService extends ReactiveArrayService<MemberView, MemberDepend
7069
return member !== undefined
7170
}
7271

73-
getById(id: NamespaceMember['id'], dependencies?: MemberDependencies): MemberView | undefined {
72+
getById(id: NamespaceMember['id'], dependencies?: MemberDependencies): NamespaceMember | undefined {
7473
return this.values(dependencies).find(member => member && member.id === id);
7574
}
7675

77-
getByNamespaceIdAndUserId(namespaceId: Namespace['id'], userId: User['id']): MemberView | undefined {
76+
getByNamespaceIdAndUserId(namespaceId: Namespace['id'], userId: User['id']): NamespaceMember | undefined {
7877
return this.values({namespaceId: namespaceId}).find(member => member.namespace?.id === namespaceId && member.user?.id === userId)
7978
}
8079

@@ -86,18 +85,17 @@ export class MemberService extends ReactiveArrayService<MemberView, MemberDepend
8685
}
8786
})
8887

89-
//TODO: should be done by a new query
9088
if (result.data && result.data.namespacesMembersAssignRoles) {
9189
const currentMember = this.getById(payload.memberId)
9290
const index = super.values().findIndex(m => m.id === payload.memberId)
9391

94-
const newMember = new MemberView({
95-
...currentMember?.json(),
92+
const newMember: NamespaceMember = {
93+
...currentMember,
9694
roles: {
9795
count: payload.roleIds.length,
9896
nodes: payload.roleIds.map(roleId => ({ id: roleId }))
9997
}
100-
})
98+
}
10199

102100
this.set(index, new View(newMember))
103101
}
@@ -115,7 +113,7 @@ export class MemberService extends ReactiveArrayService<MemberView, MemberDepend
115113

116114
if (result.data && result.data.namespacesMembersDelete && result.data.namespacesMembersDelete.namespaceMember) {
117115
const member = result.data.namespacesMembersDelete.namespaceMember
118-
const index = this.values().findIndex(m => m.id === member.id)
116+
const index = super.values().findIndex(m => m.id == member.id)
119117
this.delete(index)
120118
}
121119

@@ -132,7 +130,7 @@ export class MemberService extends ReactiveArrayService<MemberView, MemberDepend
132130

133131
if (result.data && result.data.namespacesMembersInvite && result.data.namespacesMembersInvite.namespaceMember) {
134132
const member = result.data.namespacesMembersInvite.namespaceMember
135-
this.set(this.i++, new View(new MemberView(member)))
133+
this.set(this.i++, new View(member))
136134
}
137135

138136
return result.data?.namespacesMembersInvite ?? undefined

0 commit comments

Comments
 (0)