Browse Source

query node - mappings - custom joystream types usage

ondratra 3 years ago
parent
commit
4f262ee920
2 changed files with 15 additions and 9 deletions
  1. 9 5
      query-node/mappings/src/common.ts
  2. 6 4
      query-node/mappings/src/content/utils.ts

+ 9 - 5
query-node/mappings/src/common.ts

@@ -10,9 +10,12 @@ import {
   Network,
 } from 'query-node'
 import {
-  ContentParameters
+  ContentParameters,
 } from '@joystream/types/augment'
 
+import { ContentParameters as Joystream_ContentParameters } from '@joystream/types/storage'
+import { registry } from '@joystream/types'
+
 const currentNetwork = Network.BABYLON
 
 /*
@@ -33,16 +36,17 @@ export async function prepareDataObject(
   blockNumber: number,
   owner: typeof DataObjectOwner,
 ): Promise<DataObject> {
+  // convert generic content parameters coming from processor to custom Joystream data type
+  const joystreamContentParameters = new Joystream_ContentParameters(registry, contentParameters.toJSON() as any)
+
   const dataObject = new DataObject({
     owner,
     createdInBlock: blockNumber,
     typeId: contentParameters.type_id.toNumber(),
-    // `size` is masked by `size` special name in `Struct` so there needs to be `.get('size') as unknown as u64` to retrieve proper value
-    size: (contentParameters.get('size') as unknown as u64).toNumber(),
+    size: joystreamContentParameters.size_in_bytes.toNumber(),
     liaisonJudgement: LiaisonJudgement.PENDING, // judgement is pending at start; liaison id is set when content is accepted/rejected
     ipfsContentId: contentParameters.ipfs_content_id.toUtf8(),
-    joystreamContentId: contentParameters.content_id.toHex(),
-
+    joystreamContentId: joystreamContentParameters.content_id.encode(),
 
     createdById: '1',
     updatedById: '1',

+ 6 - 4
query-node/mappings/src/content/utils.ts

@@ -69,6 +69,9 @@ import {
   ContentActor,
 } from '@joystream/types/augment'
 
+import { ContentParameters as Joystream_ContentParameters } from '@joystream/types/storage'
+import { registry } from '@joystream/types'
+
 /*
   Asset either stored in storage or describing list of URLs.
 */
@@ -465,11 +468,10 @@ async function extractVideoSize(assets: NewAsset[], assetIndex: number | undefin
 
   // !rawAsset.isUrls && rawAsset.isUpload // asset is in storage
 
+  // convert generic content parameters coming from processor to custom Joystream data type
+  const joystreamContentParameters = new Joystream_ContentParameters(registry, rawAsset.asUpload.toJSON() as any)
   // extract video size
-  const contentParameters: ContentParameters = rawAsset.asUpload
-  // `size` is masked by `size` special name in struct that's why there needs to be `.get('size') as u64`
-  const videoSize = (contentParameters.get('size') as unknown as u64).toNumber()
-
+  const videoSize = joystreamContentParameters.size_in_bytes.toNumber()
 
   return videoSize
 }