Prechádzať zdrojové kódy

query node - council & referendum mappings IX

ondratra 3 rokov pred
rodič
commit
9d383551c8

+ 24 - 1
query-node/mappings/council.ts

@@ -455,6 +455,26 @@ export async function council_NewCouncilElected({ event, store }: EventContext &
   // end the last election round and start new one
   await startNextElectionRound(store, electedCouncil, electionRound)
 
+  // unset `isCouncilMember` sign for old council's members
+  const oldElectedMembers = await store.getMany(Membership, { where: { isCouncilMember: true } })
+  await Promise.all(
+    oldElectedMembers.map(async (member) => {
+      member.isCouncilMember = false
+
+      await store.save<Membership>(member)
+    })
+  )
+
+  // set `isCouncilMember` sign for new council's members
+  await Promise.all(
+    (electedCouncil.councilMembers || []).map(async (councilMember) => {
+      const member = councilMember.member
+      member.isCouncilMember = true
+
+      await store.save<Membership>(member)
+    })
+  )
+
   // common event processing - save
 
   const newCouncilElectedEvent = new NewCouncilElectedEvent({
@@ -566,7 +586,10 @@ export async function council_CandidacyNoteSet({ event, store }: EventContext &
   const candidacyNoteSetEvent = new CandidacyNoteSetEvent({
     ...genericEventFields(event),
     member,
-    noteMetadata,
+    header: metadata?.header || undefined,
+    bulletPoints: metadata?.bulletPoints || [],
+    bannerImageUri: metadata?.bannerImageUri || undefined,
+    description: metadata?.description || undefined,
   })
 
   await store.save<CandidacyNoteSetEvent>(candidacyNoteSetEvent)

+ 11 - 2
query-node/schemas/councilEvents.graphql

@@ -215,8 +215,17 @@ type CandidacyNoteSetEvent implements Event @entity {
   "Candidate's membership."
   member: Membership!
 
-  "The metadata contained in note."
-  noteMetadata: CandidacyNoteMetadata!
+  "Candidacy header text."
+  header: String
+
+  "Candidate program in form of bullet points."
+  bulletPoints: [String!]!
+
+  "Image uri of candidate's banner."
+  bannerImageUri: String
+
+  "Candidacy description (Markdown-formatted)."
+  description: String
 }
 
 type RewardPaymentEvent implements Event @entity {