Browse Source

Forum mappings and tests adjustments

Leszek Wiesner 3 years ago
parent
commit
2a814bf780

+ 30 - 85
query-node/mappings/forum.ts

@@ -1,15 +1,12 @@
 /*
 eslint-disable @typescript-eslint/naming-convention
 */
-import { SubstrateEvent } from '@dzlzv/hydra-common'
-import { DatabaseManager } from '@dzlzv/hydra-db-utils'
-import BN from 'bn.js'
-import { bytesToString, createEvent } from './common'
+import { SubstrateEvent, DatabaseManager } from '@dzlzv/hydra-common'
+import { bytesToString, genericEventFields } from './common'
 import {
   CategoryCreatedEvent,
   CategoryStatusActive,
   CategoryUpdatedEvent,
-  EventType,
   ForumCategory,
   Worker,
   CategoryStatusArchived,
@@ -84,49 +81,37 @@ async function getActorWorker(db: DatabaseManager, actor: PrivilegedActor): Prom
 }
 
 export async function forum_CategoryCreated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const {
-    categoryId,
-    optCategoryId: parentCategoryId,
-    bytess: { 0: title, 1: description },
-  } = new Forum.CategoryCreatedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [categoryId, parentCategoryId, titleBytes, descriptionBytes] = new Forum.CategoryCreatedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
 
   const category = new ForumCategory({
     id: categoryId.toString(),
     createdAt: eventTime,
     updatedAt: eventTime,
-    title: bytesToString(title),
-    description: bytesToString(description),
+    title: bytesToString(titleBytes),
+    description: bytesToString(descriptionBytes),
     status: new CategoryStatusActive(),
     parent: parentCategoryId.isSome ? new ForumCategory({ id: parentCategoryId.unwrap().toString() }) : undefined,
   })
 
   await db.save<ForumCategory>(category)
 
-  const event = await createEvent(db, event_, EventType.CategoryCreated)
   const categoryCreatedEvent = new CategoryCreatedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     category,
   })
   await db.save<CategoryCreatedEvent>(categoryCreatedEvent)
 }
 
 export async function forum_CategoryUpdated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { categoryId, privilegedActor, bool: newArchivalStatus } = new Forum.CategoryUpdatedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [categoryId, newArchivalStatus, privilegedActor] = new Forum.CategoryUpdatedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const category = await getCategory(db, categoryId.toString())
   const actorWorker = await getActorWorker(db, privilegedActor)
 
-  const event = await createEvent(db, event_, EventType.CategoryUpdated)
   const categoryUpdatedEvent = new CategoryUpdatedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
+    ...genericEventFields(event_),
     category,
-    event,
     newArchivalStatus: newArchivalStatus.valueOf(),
     actor: actorWorker,
   })
@@ -144,18 +129,14 @@ export async function forum_CategoryUpdated(db: DatabaseManager, event_: Substra
 }
 
 export async function forum_CategoryDeleted(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { categoryId, privilegedActor } = new Forum.CategoryDeletedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [categoryId, privilegedActor] = new Forum.CategoryDeletedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const category = await getCategory(db, categoryId.toString())
   const actorWorker = await getActorWorker(db, privilegedActor)
 
-  const event = await createEvent(db, event_, EventType.CategoryDeleted)
   const categoryDeletedEvent = new CategoryDeletedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
+    ...genericEventFields(event_),
     category,
-    event,
     actor: actorWorker,
   })
   await db.save<CategoryDeletedEvent>(categoryDeletedEvent)
@@ -169,10 +150,9 @@ export async function forum_CategoryDeleted(db: DatabaseManager, event_: Substra
 }
 
 export async function forum_ThreadCreated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   const { forumUserId, categoryId, title, text, poll } = new Forum.CreateThreadCall(event_).args
-  const { threadId } = new Forum.ThreadCreatedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId] = new Forum.ThreadCreatedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const author = new Membership({ id: forumUserId.toString() })
 
   const thread = new ForumThread({
@@ -211,11 +191,8 @@ export async function forum_ThreadCreated(db: DatabaseManager, event_: Substrate
     )
   }
 
-  const event = await createEvent(db, event_, EventType.ThreadCreated)
   const threadCreatedEvent = new ThreadCreatedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     thread,
     title: bytesToString(title),
     text: bytesToString(text),
@@ -239,18 +216,14 @@ export async function forum_ThreadCreated(db: DatabaseManager, event_: Substrate
 }
 
 export async function forum_ThreadModerated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { threadId, bytes: rationaleBytes, privilegedActor } = new Forum.ThreadModeratedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId, rationaleBytes, privilegedActor] = new Forum.ThreadModeratedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const actorWorker = await getActorWorker(db, privilegedActor)
   const thread = await getThread(db, threadId.toString())
 
-  const event = await createEvent(db, event_, EventType.ThreadModerated)
   const threadModeratedEvent = new ThreadModeratedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
+    ...genericEventFields(event_),
     actor: actorWorker,
-    event,
     thread,
     rationale: bytesToString(rationaleBytes),
   })
@@ -266,16 +239,12 @@ export async function forum_ThreadModerated(db: DatabaseManager, event_: Substra
 }
 
 export async function forum_ThreadTitleUpdated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { threadId, bytes: newTitleBytes } = new Forum.ThreadTitleUpdatedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId, , , newTitleBytes] = new Forum.ThreadTitleUpdatedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const thread = await getThread(db, threadId.toString())
 
-  const event = await createEvent(db, event_, EventType.ThreadTitleUpdated)
   const threadTitleUpdatedEvent = new ThreadTitleUpdatedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     thread,
     newTitle: bytesToString(newTitleBytes),
   })
@@ -288,16 +257,12 @@ export async function forum_ThreadTitleUpdated(db: DatabaseManager, event_: Subs
 }
 
 export async function forum_ThreadDeleted(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { threadId, bool: hide } = new Forum.ThreadDeletedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId, , , hide] = new Forum.ThreadDeletedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const thread = await getThread(db, threadId.toString())
 
-  const event = await createEvent(db, event_, EventType.ThreadDeleted)
   const threadDeletedEvent = new ThreadDeletedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     thread,
   })
 
@@ -311,21 +276,13 @@ export async function forum_ThreadDeleted(db: DatabaseManager, event_: Substrate
 }
 
 export async function forum_ThreadMoved(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const {
-    threadId,
-    privilegedActor,
-    categoryIds: { 0: newCategoryId, 1: oldCategoryId },
-  } = new Forum.ThreadMovedEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId, newCategoryId, privilegedActor, oldCategoryId] = new Forum.ThreadMovedEvent(event_).params
+  const eventTime = new Date(event_.blockTimestamp)
   const thread = await getThread(db, threadId.toString())
   const actorWorker = await getActorWorker(db, privilegedActor)
 
-  const event = await createEvent(db, event_, EventType.ThreadMoved)
   const threadMovedEvent = new ThreadMovedEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     thread,
     oldCategory: new ForumCategory({ id: oldCategoryId.toString() }),
     newCategory: new ForumCategory({ id: newCategoryId.toString() }),
@@ -340,17 +297,12 @@ export async function forum_ThreadMoved(db: DatabaseManager, event_: SubstrateEv
 }
 
 export async function forum_VoteOnPoll(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
-  const { threadId, forumUserId, u32: alternativeIndex } = new Forum.VoteOnPollEvent(event_).data
-  const eventTime = new Date(event_.blockTimestamp.toNumber())
+  const [threadId, alternativeIndex, forumUserId] = new Forum.VoteOnPollEvent(event_).params
   const pollAlternative = await getPollAlternative(db, threadId.toString(), alternativeIndex.toNumber())
   const votingMember = new Membership({ id: forumUserId.toString() })
 
-  const event = await createEvent(db, event_, EventType.VoteOnPoll)
   const voteOnPollEvent = new VoteOnPollEvent({
-    createdAt: eventTime,
-    updatedAt: eventTime,
-    event,
+    ...genericEventFields(event_),
     pollAlternative,
     votingMember,
   })
@@ -359,32 +311,26 @@ export async function forum_VoteOnPoll(db: DatabaseManager, event_: SubstrateEve
 }
 
 export async function forum_PostAdded(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
 export async function forum_PostModerated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
 export async function forum_PostDeleted(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
 export async function forum_PostTextUpdated(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
 export async function forum_PostReacted(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
 export async function forum_CategoryStickyThreadUpdate(db: DatabaseManager, event_: SubstrateEvent): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }
 
@@ -392,6 +338,5 @@ export async function forum_CategoryMembershipOfModeratorUpdated(
   db: DatabaseManager,
   event_: SubstrateEvent
 ): Promise<void> {
-  event_.blockTimestamp = new BN(event_.blockTimestamp) // FIXME: Temporary fix for wrong blockTimestamp type
   // TODO
 }

+ 288 - 32
query-node/schemas/forumEvents.graphql

@@ -1,6 +1,22 @@
 type CategoryCreatedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The created category"
   category: ForumCategory!
@@ -9,8 +25,24 @@ type CategoryCreatedEvent @entity {
 }
 
 type CategoryUpdatedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The category beeing updated"
   category: ForumCategory!
@@ -23,8 +55,24 @@ type CategoryUpdatedEvent @entity {
 }
 
 type CategoryDeletedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "Category beeing deleted"
   category: ForumCategory!
@@ -34,8 +82,24 @@ type CategoryDeletedEvent @entity {
 }
 
 type ThreadCreatedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The thread that was created"
   thread: ForumThread!
@@ -50,8 +114,24 @@ type ThreadCreatedEvent @entity {
 }
 
 type ThreadModeratedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The thread beeing moderated"
   thread: ForumThread!
@@ -79,8 +159,24 @@ type ThreadModeratedEvent @entity {
 # }
 
 type ThreadTitleUpdatedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The thread beeing updated"
   thread: ForumThread!
@@ -92,8 +188,24 @@ type ThreadTitleUpdatedEvent @entity {
 }
 
 type ThreadDeletedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The thread beeing deleted"
   thread: ForumThread!
@@ -102,8 +214,24 @@ type ThreadDeletedEvent @entity {
 }
 
 type ThreadMovedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The thread beeing moved"
   thread: ForumThread!
@@ -119,8 +247,24 @@ type ThreadMovedEvent @entity {
 }
 
 type PostAddedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The post that was added"
   post: ForumPost!
@@ -133,8 +277,24 @@ type PostAddedEvent @entity {
 }
 
 type PostModeratedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The post beeing moderated"
   post: ForumPost!
@@ -147,8 +307,24 @@ type PostModeratedEvent @entity {
 }
 
 type PostDeletedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "List of deleted posts"
   posts: [ForumPost!] @derivedFrom(field: "deletedInEvent")
@@ -158,8 +334,24 @@ type PostDeletedEvent @entity {
 }
 
 type PostTextUpdatedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The post beeing updated"
   post: ForumPost!
@@ -171,8 +363,24 @@ type PostTextUpdatedEvent @entity {
 }
 
 type PostReactedEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The post beeing reacted to"
   post: ForumPost!
@@ -185,8 +393,24 @@ type PostReactedEvent @entity {
 }
 
 type VoteOnPollEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "Poll alternative beeing voted on"
   pollAlternative: ForumPollAlternative!
@@ -196,8 +420,24 @@ type VoteOnPollEvent @entity {
 }
 
 type CategoryStickyThreadUpdateEvent @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The related category"
   category: ForumCategory!
@@ -210,8 +450,24 @@ type CategoryStickyThreadUpdateEvent @entity {
 }
 
 type CategoryMembershipOfModeratorUpdated @entity {
-  "Generic event data"
-  event: Event!
+  ### GENERIC DATA ###
+
+  "(network}-{blockNumber}-{indexInBlock}"
+  id: ID!
+
+  "Hash of the extrinsic which caused the event to be emitted"
+  inExtrinsic: String
+
+  "Blocknumber of the block in which the event was emitted."
+  inBlock: Int!
+
+  "Network the block was produced in"
+  network: Network!
+
+  "Index of event in block from which it was emitted."
+  indexInBlock: Int!
+
+  ### SPECIFIC DATA ###
 
   "The moderator in question"
   moderator: Worker!

+ 0 - 2
tests/integration-tests/src/fixtures/forum/CreateCategoriesFixture.ts

@@ -5,7 +5,6 @@ import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { Utils } from '../../utils'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { CategoryCreatedEventFieldsFragment, ForumCategoryFieldsFragment } from '../../graphql/generated/queries'
-import { EventType } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { StandardizedFixture } from '../../Fixture'
 import { CategoryId } from '@joystream/types/forum'
@@ -63,7 +62,6 @@ export class CreateCategoriesFixture extends StandardizedFixture {
   }
 
   protected assertQueryNodeEventIsValid(qEvent: CategoryCreatedEventFieldsFragment, i: number): void {
-    assert.equal(qEvent.event.type, EventType.CategoryCreated)
     assert.equal(qEvent.category.id, this.events[i].categoryId.toString())
   }
 

+ 1 - 2
tests/integration-tests/src/fixtures/forum/CreateThreadsFixture.ts

@@ -5,7 +5,7 @@ import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { Utils } from '../../utils'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { ForumThreadWithPostsFieldsFragment, ThreadCreatedEventFieldsFragment } from '../../graphql/generated/queries'
-import { EventType, PostOriginThreadInitial } from '../../graphql/generated/schema'
+import { PostOriginThreadInitial } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { StandardizedFixture } from '../../Fixture'
 import { CategoryId, Poll } from '@joystream/types/forum'
@@ -120,7 +120,6 @@ export class CreateThreadsFixture extends StandardizedFixture {
   }
 
   protected assertQueryNodeEventIsValid(qEvent: ThreadCreatedEventFieldsFragment, i: number): void {
-    assert.equal(qEvent.event.type, EventType.ThreadCreated)
     assert.equal(qEvent.thread.id, this.events[i].threadId.toString())
   }
 

+ 0 - 2
tests/integration-tests/src/fixtures/forum/DeleteThreadsFixture.ts

@@ -5,7 +5,6 @@ import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { Utils } from '../../utils'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { ForumThreadWithPostsFieldsFragment, ThreadDeletedEventFieldsFragment } from '../../graphql/generated/queries'
-import { EventType } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { StandardizedFixture } from '../../Fixture'
 import { CategoryId } from '@joystream/types/forum'
@@ -77,7 +76,6 @@ export class DeleteThreadsFixture extends StandardizedFixture {
   }
 
   protected assertQueryNodeEventIsValid(qEvent: ThreadDeletedEventFieldsFragment, i: number): void {
-    assert.equal(qEvent.event.type, EventType.ThreadDeleted)
     assert.equal(qEvent.thread.id, this.removals[i].threadId.toString())
   }
 

+ 0 - 2
tests/integration-tests/src/fixtures/forum/RemoveCategoriesFixture.ts

@@ -6,7 +6,6 @@ import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { Utils } from '../../utils'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { CategoryDeletedEventFieldsFragment, ForumCategoryFieldsFragment } from '../../graphql/generated/queries'
-import { EventType } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { CategoryId } from '@joystream/types/forum'
 import { WithForumLeadFixture } from './WithForumLeadFixture'
@@ -59,7 +58,6 @@ export class RemoveCategoriesFixture extends WithForumLeadFixture {
 
   protected assertQueryNodeEventIsValid(qEvent: CategoryDeletedEventFieldsFragment, i: number): void {
     const { categoryId, asWorker } = this.removals[i]
-    assert.equal(qEvent.event.type, EventType.CategoryDeleted)
     assert.equal(qEvent.category.id, categoryId.toString())
     assert.equal(qEvent.actor.id, `forumWorkingGroup-${asWorker ? asWorker.toString() : this.forumLeadId!.toString()}`)
   }

+ 0 - 2
tests/integration-tests/src/fixtures/forum/UpdateCategoriesStatusFixture.ts

@@ -6,7 +6,6 @@ import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { Utils } from '../../utils'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { CategoryUpdatedEventFieldsFragment, ForumCategoryFieldsFragment } from '../../graphql/generated/queries'
-import { EventType } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { CategoryId } from '@joystream/types/forum'
 import { WithForumLeadFixture } from './WithForumLeadFixture'
@@ -68,7 +67,6 @@ export class UpdateCategoriesStatusFixture extends WithForumLeadFixture {
 
   protected assertQueryNodeEventIsValid(qEvent: CategoryUpdatedEventFieldsFragment, i: number): void {
     const { categoryId, archived, asWorker } = this.updates[i]
-    assert.equal(qEvent.event.type, EventType.CategoryUpdated)
     assert.equal(qEvent.category.id, categoryId.toString())
     assert.equal(qEvent.newArchivalStatus, archived)
     assert.equal(qEvent.actor.id, `forumWorkingGroup-${asWorker ? asWorker.toString() : this.forumLeadId!.toString()}`)

+ 0 - 2
tests/integration-tests/src/fixtures/forum/VoteOnPollFixture.ts

@@ -4,7 +4,6 @@ import { EventDetails } from '../../types'
 import { SubmittableExtrinsic } from '@polkadot/api/types'
 import { ISubmittableResult } from '@polkadot/types/types/'
 import { ForumThreadWithPostsFieldsFragment, VoteOnPollEventFieldsFragment } from '../../graphql/generated/queries'
-import { EventType } from '../../graphql/generated/schema'
 import { assert } from 'chai'
 import { StandardizedFixture } from '../../Fixture'
 import { CategoryId } from '@joystream/types/forum'
@@ -46,7 +45,6 @@ export class VoteOnPollFixture extends StandardizedFixture {
   }
 
   protected assertQueryNodeEventIsValid(qEvent: VoteOnPollEventFieldsFragment, i: number): void {
-    assert.equal(qEvent.event.type, EventType.VoteOnPoll)
     assert.equal(qEvent.pollAlternative.poll.thread.id, this.votes[i].threadId.toString())
     assert.equal(qEvent.pollAlternative.index, this.votes[i].index)
     assert.equal(qEvent.votingMember.id, this.votes[i].asMember.toString())

File diff suppressed because it is too large
+ 344 - 177
tests/integration-tests/src/graphql/generated/queries.ts


File diff suppressed because it is too large
+ 326 - 395
tests/integration-tests/src/graphql/generated/schema.ts


+ 36 - 24
tests/integration-tests/src/graphql/queries/forumEvents.graphql

@@ -1,24 +1,28 @@
 fragment CategoryCreatedEventFields on CategoryCreatedEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   category {
     id
   }
 }
 
 query getCategoryCreatedEventsByEventIds($eventIds: [ID!]) {
-  categoryCreatedEvents(where: { eventId_in: $eventIds }) {
+  categoryCreatedEvents(where: { id_in: $eventIds }) {
     ...CategoryCreatedEventFields
   }
 }
 
 fragment CategoryUpdatedEventFields on CategoryUpdatedEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   category {
     id
   }
@@ -29,16 +33,18 @@ fragment CategoryUpdatedEventFields on CategoryUpdatedEvent {
 }
 
 query getCategoryUpdatedEventsByEventIds($eventIds: [ID!]) {
-  categoryUpdatedEvents(where: { eventId_in: $eventIds }) {
+  categoryUpdatedEvents(where: { id_in: $eventIds }) {
     ...CategoryUpdatedEventFields
   }
 }
 
 fragment CategoryDeletedEventFields on CategoryDeletedEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   category {
     id
   }
@@ -48,32 +54,36 @@ fragment CategoryDeletedEventFields on CategoryDeletedEvent {
 }
 
 query getCategoryDeletedEventsByEventIds($eventIds: [ID!]) {
-  categoryDeletedEvents(where: { eventId_in: $eventIds }) {
+  categoryDeletedEvents(where: { id_in: $eventIds }) {
     ...CategoryDeletedEventFields
   }
 }
 
 fragment ThreadCreatedEventFields on ThreadCreatedEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   thread {
     id
   }
 }
 
 query getThreadCreatedEventsByEventIds($eventIds: [ID!]) {
-  threadCreatedEvents(where: { eventId_in: $eventIds }) {
+  threadCreatedEvents(where: { id_in: $eventIds }) {
     ...ThreadCreatedEventFields
   }
 }
 
 fragment VoteOnPollEventFields on VoteOnPollEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   pollAlternative {
     id
     index
@@ -90,23 +100,25 @@ fragment VoteOnPollEventFields on VoteOnPollEvent {
 }
 
 query getVoteOnPollEventsByEventIds($eventIds: [ID!]) {
-  voteOnPollEvents(where: { eventId_in: $eventIds }) {
+  voteOnPollEvents(where: { id_in: $eventIds }) {
     ...VoteOnPollEventFields
   }
 }
 
 fragment ThreadDeletedEventFields on ThreadDeletedEvent {
   id
-  event {
-    ...EventFields
-  }
+  createdAt
+  inBlock
+  network
+  inExtrinsic
+  indexInBlock
   thread {
     id
   }
 }
 
 query getThreadDeletedEventsByEventIds($eventIds: [ID!]) {
-  threadDeletedEvents(where: { eventId_in: $eventIds }) {
+  threadDeletedEvents(where: { id_in: $eventIds }) {
     ...ThreadDeletedEventFields
   }
 }

Some files were not shown because too many files changed in this diff