Browse Source

query-node: Update membership migration.

Shamil Gadelshin 3 years ago
parent
commit
570ce12937

+ 2 - 2
query-node/mappings/src/bootstrap-data/index.ts

@@ -1,11 +1,11 @@
-import { MemberJson, StorageSystemJson, WorkingGroupJson, MembershipSystemJson } from './types'
+import { StorageSystemJson, WorkingGroupJson, MembershipSystemJson } from './types'
 import storageSystemJson from './data/storageSystem.json'
 import membersJson from './data/members.json'
 import workingGroupsJson from './data/workingGroups.json'
 import membershipSystemJson from './data/membershipSystem.json'
 
 const storageSystemData: StorageSystemJson = storageSystemJson
-const membersData: MemberJson[] = membersJson
+const membersData = membersJson
 const workingGroupsData: WorkingGroupJson[] = workingGroupsJson
 const membershipSystemData: MembershipSystemJson = membershipSystemJson
 

+ 34 - 1
query-node/mappings/src/bootstrap.ts

@@ -6,13 +6,17 @@ import {
   WorkingGroup,
   ElectedCouncil,
   ElectionRound,
+  MembershipEntryGenesis,
 } from 'query-node/dist/model'
-import { storageSystemData, membershipSystemData, workingGroupsData } from './bootstrap-data'
+import { storageSystemData, membershipSystemData, workingGroupsData, membersData } from './bootstrap-data'
+import { createNewMember } from './membership'
 
 import { CURRENT_NETWORK } from './common'
+import { MembershipMetadata } from '@joystream/metadata-protobuf'
 
 export async function bootstrapData({ store }: StoreContext): Promise<void> {
   await initMembershipSystem(store)
+  await initMembers(store)
   await initStorageSystem(store)
   await initWorkingGroups(store)
   await initFirstElectionRound(store)
@@ -81,3 +85,32 @@ async function initFirstElectionRound(store: DatabaseManager): Promise<void> {
   })
   await store.save<ElectionRound>(initialElectionRound)
 }
+
+async function initMembers(store: DatabaseManager) {
+  for (const obj of membersData) {
+    // Casting for empty members array by default
+    const member = (obj as unknown) as {
+      member_id: number
+      root_account: string
+      controller_account: string
+      handle: string
+      about: string
+      avatar_uri: string
+    }
+
+    await createNewMember(
+      store,
+      new Date(0),
+      member.member_id.toString(),
+      new MembershipEntryGenesis(),
+      member.root_account,
+      member.controller_account,
+      member.handle,
+      0,
+      new MembershipMetadata({
+        about: member.about,
+        avatarUri: member.avatar_uri,
+      })
+    )
+  }
+}