/*! * @license * Copyright Squiz Australia Pty Ltd. All Rights Reserved. */ import { ListObjectsV2Command, ListObjectsV2CommandOutput, S3Client } from '@aws-sdk/client-s3'; import { inject } from 'inversify'; import { S3RepositoryBase } from './S3RepositoryBase'; import { provideTransient } from '../transientProvider'; import { InjectTokens } from '../constants/InjectTokens'; /** * Repository class for interacting with the job uploads S3 bucket. * @export * @class JobUploadsRepository */ @provideTransient(JobUploadsRepository) export class JobUploadsRepository extends S3RepositoryBase { public constructor( @inject(S3Client) protected s3Client: S3Client, @inject(InjectTokens.JobUploadsBucket) bucketName: string, ) { super(s3Client, bucketName); } public async listByTenant(tenant: string, continuationToken?: string): Promise { return await this.s3Client.send( new ListObjectsV2Command({ Bucket: this.bucketName, Prefix: `${tenant}/`, ContinuationToken: continuationToken, }), ); } }