diff --git a/src/server-extension/resolvers/AssetsResolver/index.ts b/src/server-extension/resolvers/AssetsResolver/index.ts index 7b674131a..96d9a34fa 100644 --- a/src/server-extension/resolvers/AssetsResolver/index.ts +++ b/src/server-extension/resolvers/AssetsResolver/index.ts @@ -1,7 +1,6 @@ import { FieldResolver, Root, ObjectType, Field, Resolver, Ctx } from 'type-graphql' import { EntityManager } from 'typeorm' import { - StorageDataObject as DataObjectEntity, DistributionBucket, DistributionBucketOperatorMetadata, DistributionBucketOperatorStatus, @@ -226,11 +225,20 @@ function getResolvedUrlsLimit(ctx: Context): number { return parseInt(ctx.req.headers['x-asset-urls-limit']?.toString() || '0') } +@ObjectType() +class StorageBag { + @Field() + id!: string +} + @ObjectType() export class StorageDataObject { @Field() id!: string + @Field() + storageBag: StorageBag + @Field(() => [String]) resolvedUrls: string[] } @@ -242,20 +250,14 @@ export class AssetsResolver { @FieldResolver(() => [String]) async resolvedUrls(@Root() object: StorageDataObject, @Ctx() ctx: Context): Promise { - const em = await this.em() const clientLoc = await getClientLoc(ctx) const limit = await getResolvedUrlsLimit(ctx) // The resolvedUrl field is initially populated with the object ID const [objectId] = object.resolvedUrls - if (!objectId) { - return [] - } - const { storageBagId } = - (await em.getRepository(DataObjectEntity).findOneBy({ id: objectId })) || {} - if (!storageBagId) { + if (!object.storageBag || !objectId) { return [] } - const buckets = await distributionBucketsCache.getBucketsByBagId(storageBagId) + const buckets = await distributionBucketsCache.getBucketsByBagId(object.storageBag.id) const nodes = buckets.flatMap((b) => b.nodes) if (clientLoc) { sortNodesByClosest(nodes, clientLoc)