Browse Source

storage-node-v2: Update graphql query.

Shamil Gadelshin 3 years ago
parent
commit
f5fdb134a7

+ 1 - 1
storage-node-v2/package.json

@@ -15,7 +15,7 @@
     "@oclif/plugin-help": "^3",
     "@polkadot/api": "4.2.1",
     "@types/base64url": "^2.0.0",
-    "@types/express": "4.17.1",
+    "@types/express": "4.17.13",
     "@types/file-type": "^10.9.1",
     "@types/lodash": "^4.14.171",
     "@types/multer": "^1.4.5",

+ 2 - 3
storage-node-v2/src/services/queryNode/api.ts

@@ -14,7 +14,7 @@ import {
   GetDataObjectDetailsQueryVariables,
   GetDataObjectDetails,
 } from './generated/queries'
-import { Maybe, StorageBucketWhereInput, StorageBagWhereInput } from './generated/schema'
+import { Maybe, StorageBagWhereInput } from './generated/schema'
 
 /**
  * Query node class helper. Incapsulates custom queries.
@@ -129,10 +129,9 @@ export class QueryNodeApi {
     offset: number,
     limit: number
   ): Promise<Array<StorageBagDetailsFragment>> {
-    const input: StorageBucketWhereInput = { id_in: bucketIds }
     const result = await this.multipleEntitiesQuery<GetStorageBagDetailsQuery, GetStorageBagDetailsQueryVariables>(
       GetStorageBagDetails,
-      { offset, limit, bucketIds: input },
+      { offset, limit, bucketIds },
       'storageBags'
     )
 

+ 11 - 5
storage-node-v2/src/services/queryNode/generated/queries.ts

@@ -14,10 +14,10 @@ export type GetStorageBucketDetailsQueryVariables = Types.Exact<{
 
 export type GetStorageBucketDetailsQuery = { storageBuckets: Array<StorageBucketDetailsFragment> }
 
-export type StorageBagDetailsFragment = { id: string; storageAssignments: Array<{ id: string }> }
+export type StorageBagDetailsFragment = { id: string; storageAssignments: Array<{ storageBucket: { id: string } }> }
 
 export type GetStorageBagDetailsQueryVariables = Types.Exact<{
-  bucketIds?: Types.Maybe<Types.StorageBagStorageAssignmentWhereInput>
+  bucketIds?: Types.Maybe<Array<Types.Scalars['String']> | Types.Scalars['String']>
   offset?: Types.Maybe<Types.Scalars['Int']>
   limit?: Types.Maybe<Types.Scalars['Int']>
 }>
@@ -55,7 +55,9 @@ export const StorageBagDetails = gql`
   fragment StorageBagDetails on StorageBag {
     id
     storageAssignments {
-      id
+      storageBucket {
+        id
+      }
     }
   }
 `
@@ -76,8 +78,12 @@ export const GetStorageBucketDetails = gql`
   ${StorageBucketDetails}
 `
 export const GetStorageBagDetails = gql`
-  query getStorageBagDetails($bucketIds: StorageBagStorageAssignmentWhereInput, $offset: Int, $limit: Int) {
-    storageBags(offset: $offset, limit: $limit, where: { storageAssignments_some: $bucketIds }) {
+  query getStorageBagDetails($bucketIds: [String!], $offset: Int, $limit: Int) {
+    storageBags(
+      offset: $offset
+      limit: $limit
+      where: { storageAssignments_some: { storageBucketId_in: $bucketIds } }
+    ) {
       ...StorageBagDetails
     }
   }

+ 40 - 4
storage-node-v2/src/services/queryNode/generated/schema.ts

@@ -2853,9 +2853,9 @@ export type StorageBagDistributionAssignment = BaseGraphQlObject & {
   deletedById?: Maybe<Scalars['String']>
   version: Scalars['Int']
   storageBag: StorageBag
-  storageBagId: Scalars['String']
+  storageBagId?: Maybe<Scalars['String']>
   distributionBucket: DistributionBucket
-  distributionBucketId: Scalars['String']
+  distributionBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagDistributionAssignmentConnection = {
@@ -2867,6 +2867,8 @@ export type StorageBagDistributionAssignmentConnection = {
 export type StorageBagDistributionAssignmentCreateInput = {
   storageBag: Scalars['ID']
   distributionBucket: Scalars['ID']
+  storageBagId?: Maybe<Scalars['String']>
+  distributionBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagDistributionAssignmentEdge = {
@@ -2885,11 +2887,17 @@ export enum StorageBagDistributionAssignmentOrderByInput {
   StorageBagDesc = 'storageBag_DESC',
   DistributionBucketAsc = 'distributionBucket_ASC',
   DistributionBucketDesc = 'distributionBucket_DESC',
+  StorageBagIdAsc = 'storageBagId_ASC',
+  StorageBagIdDesc = 'storageBagId_DESC',
+  DistributionBucketIdAsc = 'distributionBucketId_ASC',
+  DistributionBucketIdDesc = 'distributionBucketId_DESC',
 }
 
 export type StorageBagDistributionAssignmentUpdateInput = {
   storageBag?: Maybe<Scalars['ID']>
   distributionBucket?: Maybe<Scalars['ID']>
+  storageBagId?: Maybe<Scalars['String']>
+  distributionBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagDistributionAssignmentWhereInput = {
@@ -2921,6 +2929,16 @@ export type StorageBagDistributionAssignmentWhereInput = {
   storageBag_in?: Maybe<Array<Scalars['ID']>>
   distributionBucket_eq?: Maybe<Scalars['ID']>
   distributionBucket_in?: Maybe<Array<Scalars['ID']>>
+  storageBagId_eq?: Maybe<Scalars['String']>
+  storageBagId_contains?: Maybe<Scalars['String']>
+  storageBagId_startsWith?: Maybe<Scalars['String']>
+  storageBagId_endsWith?: Maybe<Scalars['String']>
+  storageBagId_in?: Maybe<Array<Scalars['String']>>
+  distributionBucketId_eq?: Maybe<Scalars['String']>
+  distributionBucketId_contains?: Maybe<Scalars['String']>
+  distributionBucketId_startsWith?: Maybe<Scalars['String']>
+  distributionBucketId_endsWith?: Maybe<Scalars['String']>
+  distributionBucketId_in?: Maybe<Array<Scalars['String']>>
   storageBag?: Maybe<StorageBagWhereInput>
   distributionBucket?: Maybe<DistributionBucketWhereInput>
   AND?: Maybe<Array<StorageBagDistributionAssignmentWhereInput>>
@@ -3216,9 +3234,9 @@ export type StorageBagStorageAssignment = BaseGraphQlObject & {
   deletedById?: Maybe<Scalars['String']>
   version: Scalars['Int']
   storageBag: StorageBag
-  storageBagId: Scalars['String']
+  storageBagId?: Maybe<Scalars['String']>
   storageBucket: StorageBucket
-  storageBucketId: Scalars['String']
+  storageBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagStorageAssignmentConnection = {
@@ -3230,6 +3248,8 @@ export type StorageBagStorageAssignmentConnection = {
 export type StorageBagStorageAssignmentCreateInput = {
   storageBag: Scalars['ID']
   storageBucket: Scalars['ID']
+  storageBagId?: Maybe<Scalars['String']>
+  storageBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagStorageAssignmentEdge = {
@@ -3248,11 +3268,17 @@ export enum StorageBagStorageAssignmentOrderByInput {
   StorageBagDesc = 'storageBag_DESC',
   StorageBucketAsc = 'storageBucket_ASC',
   StorageBucketDesc = 'storageBucket_DESC',
+  StorageBagIdAsc = 'storageBagId_ASC',
+  StorageBagIdDesc = 'storageBagId_DESC',
+  StorageBucketIdAsc = 'storageBucketId_ASC',
+  StorageBucketIdDesc = 'storageBucketId_DESC',
 }
 
 export type StorageBagStorageAssignmentUpdateInput = {
   storageBag?: Maybe<Scalars['ID']>
   storageBucket?: Maybe<Scalars['ID']>
+  storageBagId?: Maybe<Scalars['String']>
+  storageBucketId?: Maybe<Scalars['String']>
 }
 
 export type StorageBagStorageAssignmentWhereInput = {
@@ -3284,6 +3310,16 @@ export type StorageBagStorageAssignmentWhereInput = {
   storageBag_in?: Maybe<Array<Scalars['ID']>>
   storageBucket_eq?: Maybe<Scalars['ID']>
   storageBucket_in?: Maybe<Array<Scalars['ID']>>
+  storageBagId_eq?: Maybe<Scalars['String']>
+  storageBagId_contains?: Maybe<Scalars['String']>
+  storageBagId_startsWith?: Maybe<Scalars['String']>
+  storageBagId_endsWith?: Maybe<Scalars['String']>
+  storageBagId_in?: Maybe<Array<Scalars['String']>>
+  storageBucketId_eq?: Maybe<Scalars['String']>
+  storageBucketId_contains?: Maybe<Scalars['String']>
+  storageBucketId_startsWith?: Maybe<Scalars['String']>
+  storageBucketId_endsWith?: Maybe<Scalars['String']>
+  storageBucketId_in?: Maybe<Array<Scalars['String']>>
   storageBag?: Maybe<StorageBagWhereInput>
   storageBucket?: Maybe<StorageBucketWhereInput>
   AND?: Maybe<Array<StorageBagStorageAssignmentWhereInput>>

+ 5 - 3
storage-node-v2/src/services/queryNode/queries/queries.graphql

@@ -23,12 +23,14 @@ query getStorageBucketDetails($offset: Int, $limit: Int) {
 fragment StorageBagDetails on StorageBag {
   id
   storageAssignments {
-    id
+    storageBucket {
+      id
+    }
   }
 }
 
-query getStorageBagDetails($bucketIds: StorageBagStorageAssignmentWhereInput, $offset: Int, $limit: Int) {
-  storageBags(offset: $offset, limit: $limit, where: { storageAssignments_some: $bucketIds }) {
+query getStorageBagDetails($bucketIds: [String!], $offset: Int, $limit: Int) {
+  storageBags(offset: $offset, limit: $limit, where: { storageAssignments_some: { storageBucketId_in: $bucketIds } }) {
     ...StorageBagDetails
   }
 }

+ 1 - 1
storage-node-v2/src/services/sync/storageObligations.ts

@@ -109,7 +109,7 @@ export async function getStorageObligationsFromRuntime(
     })),
     bags: assignedBags.map((bag) => ({
       id: bag.id,
-      buckets: bag.storageAssignments.map((bucketInBag) => bucketInBag.id),
+      buckets: bag.storageAssignments.map((bucketInBag) => bucketInBag.storageBucket.id),
     })),
     dataObjects: assignedDataObjects.map((dataObject) => ({
       cid: dataObject.ipfsHash,

+ 1 - 1
storage-node-v2/src/services/sync/synchronizer.ts

@@ -45,7 +45,7 @@ export async function performSync(
   const deletedTasks = deleted.map((fileName) => new DeleteLocalFileTask(uploadDirectory, fileName))
 
   let addedTasks: SyncTask[]
-  if (operatorUrl !== null) {
+  if (operatorUrl === undefined) {
     addedTasks = await getPrepareDownloadTasks(model, added, uploadDirectory, workingStack)
   } else {
     addedTasks = await getDownloadTasks(operatorUrl, added, uploadDirectory)

+ 1 - 1
storage-node-v2/src/services/sync/tasks.ts

@@ -74,7 +74,7 @@ export class DownloadFileTask implements SyncTask {
       const timeoutMs = 30 * 60 * 1000 // 30 min for large files (~ 10 GB)
       // Casting because of:
       // https://stackoverflow.com/questions/38478034/pipe-superagent-response-to-express-response
-      const request = superagent.get(this.url).timeout(timeoutMs) as unknown as NodeJS.ReadableStream
+      const request = (superagent.get(this.url).timeout(timeoutMs) as unknown) as NodeJS.ReadableStream
 
       // We create tempfile first to mitigate partial downloads on app (or remote node) crash.
       // This partial downloads will be cleaned up during the next sync iteration.

+ 3 - 1
storage-node-v2/src/services/webApi/controllers/common.ts

@@ -92,7 +92,9 @@ export function getQueryNodeUrl(res: express.Response): string {
  * This is a helper function. It parses the response object for a variable and
  * throws an error on failure.
  */
-export function getCommandConfig(res: express.Response): {
+export function getCommandConfig(
+  res: express.Response
+): {
   version: string
   userAgent: string
 } {

File diff suppressed because it is too large
+ 465 - 211
yarn.lock


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