@punks/backend-entity-manager 0.0.233 → 0.0.235

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,6 +36,10 @@ export type FileReferenceRecord = FilesReferenceData & {
36
36
  updatedOn: Date;
37
37
  };
38
38
  export interface IFilesReferenceRepository {
39
+ searchReference({ reference, providerId, }: {
40
+ reference: string;
41
+ providerId: string;
42
+ }): Promise<FileReferenceRecord>;
39
43
  getReference(fileId: string): Promise<FileReferenceRecord>;
40
44
  createReference(file: FilesReferenceData): Promise<FileReferenceRecord>;
41
45
  updateReference(fileId: string, file: FilesReferenceData): Promise<FileReferenceRecord>;
@@ -8,6 +8,11 @@ export type MediaUploadInput = {
8
8
  export type MediaReference = {
9
9
  ref: string;
10
10
  };
11
+ export type MediaItemReference = {
12
+ id: string;
13
+ ref: string;
14
+ folderId?: string;
15
+ };
11
16
  export type IMediaProvider = {
12
17
  mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
13
18
  mediaDelete(input: MediaReference): Promise<void>;
@@ -80,7 +85,7 @@ export type MediaFolderEnsureInput = {
80
85
  organizationId?: string;
81
86
  };
82
87
  export type IMediaLibraryManager = {
83
- mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
88
+ mediaUpload(input: MediaUploadInput): Promise<MediaItemReference>;
84
89
  mediaDelete(input: MediaReference): Promise<void>;
85
90
  mediaDownload(input: MediaReference): Promise<Buffer>;
86
91
  folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
@@ -4,6 +4,10 @@ import { AppFileReferenceEntity, AppFileReferenceEntityId } from "../entities/ap
4
4
  import { FileReferenceRecord, FilesReferenceData, IFilesReferenceRepository } from "../../../../../../../abstractions";
5
5
  export declare class AppFileReferenceRepository extends NestTypeOrmRepository<AppFileReferenceEntity, AppFileReferenceEntityId> implements IFilesReferenceRepository {
6
6
  constructor(repository: Repository<AppFileReferenceEntity>);
7
+ searchReference({ reference, providerId, }: {
8
+ reference: string;
9
+ providerId: string;
10
+ }): Promise<FileReferenceRecord>;
7
11
  getReference(fileId: string): Promise<FileReferenceRecord>;
8
12
  createReference(file: FilesReferenceData): Promise<FileReferenceRecord>;
9
13
  updateReference(fileId: string, file: FilesReferenceData): Promise<FileReferenceRecord>;
@@ -6,6 +6,10 @@ export declare class FilesManager implements IFileManager {
6
6
  uploadFile(file: FileData): Promise<FileReference>;
7
7
  getFileContent(fileId: string): Promise<FileData>;
8
8
  getFileDownloadUrl(fileId: string): Promise<FileDownloadUrl>;
9
+ getFileReferenceDownloadUrl({ reference, providerId, }: {
10
+ reference: string;
11
+ providerId: string;
12
+ }): Promise<FileDownloadUrl>;
9
13
  private getFileProvider;
10
14
  private get defaultFileProvider();
11
15
  private get referencesRepo();
@@ -1,10 +1,10 @@
1
1
  /// <reference types="node" />
2
- import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderEnsureInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaReference, MediaUploadInput } from "../../../../abstractions";
2
+ import { IMediaLibraryManager, MediaFolderCreateInput, MediaFolderEnsureInput, MediaFolderMoveInput, MediaFolderReference, MediaFolderRenameInput, MediaInfo, MediaItemReference, MediaReference, MediaUploadInput } from "../../../../abstractions";
3
3
  import { EntityManagerRegistry } from "../../ioc";
4
4
  export declare class MediaLibraryService implements IMediaLibraryManager {
5
5
  private readonly registry;
6
6
  constructor(registry: EntityManagerRegistry);
7
- mediaUpload(input: MediaUploadInput): Promise<MediaReference>;
7
+ mediaUpload(input: MediaUploadInput): Promise<MediaItemReference>;
8
8
  mediaDelete(input: MediaReference): Promise<void>;
9
9
  mediaDownload(input: MediaReference): Promise<Buffer>;
10
10
  folderEnsure(input: MediaFolderEnsureInput): Promise<MediaFolderReference>;
package/dist/esm/index.js CHANGED
@@ -21397,14 +21397,18 @@ let MediaLibraryService = class MediaLibraryService {
21397
21397
  }
21398
21398
  async mediaUpload(input) {
21399
21399
  const reference = await this.defaultMediaProvider.mediaUpload(input);
21400
- await this.mediaReferenceRepository.createReference({
21400
+ const referenceItem = await this.mediaReferenceRepository.createReference({
21401
21401
  media: reference,
21402
21402
  fileName: input.fileName,
21403
21403
  contentType: input.contentType,
21404
21404
  folderId: input.folderId,
21405
21405
  providerId: this.defaultMediaProvider.getProviderId(),
21406
21406
  });
21407
- return reference;
21407
+ return {
21408
+ id: referenceItem.id,
21409
+ ref: referenceItem.ref,
21410
+ folderId: referenceItem.folderId,
21411
+ };
21408
21412
  }
21409
21413
  async mediaDelete(input) {
21410
21414
  await this.getMediaProvider(this.parseReferenceProviderId(input)).mediaDelete(input);
@@ -21618,6 +21622,20 @@ let FilesManager = class FilesManager {
21618
21622
  downloadUrl: downloadUrl.downloadUrl,
21619
21623
  };
21620
21624
  }
21625
+ async getFileReferenceDownloadUrl({ reference, providerId, }) {
21626
+ const ref = await this.referencesRepo.searchReference({
21627
+ providerId,
21628
+ reference,
21629
+ });
21630
+ const downloadUrl = await this.getFileProvider(ref.providerId).getFileProviderDownloadUrl({
21631
+ reference: ref.reference,
21632
+ });
21633
+ return {
21634
+ contentType: ref.contentType,
21635
+ fileName: ref.fileName,
21636
+ downloadUrl: downloadUrl.downloadUrl,
21637
+ };
21638
+ }
21621
21639
  getFileProvider(providerId) {
21622
21640
  return this.registry
21623
21641
  .getContainer()