diff --git a/package.json b/package.json index 8442962e..b3540671 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@internxt/sdk", - "version": "1.4.34", + "version": "1.4.35", "description": "An sdk for interacting with Internxt's services", "repository": { "type": "git", diff --git a/src/drive/storage/index.ts b/src/drive/storage/index.ts index 8581ac91..a4733586 100644 --- a/src/drive/storage/index.ts +++ b/src/drive/storage/index.ts @@ -18,6 +18,7 @@ import { ThumbnailEntry, Thumbnail, FetchPaginatedFolderContentResponse, + FileMeta, } from './types'; import { ApiSecurity, ApiUrl, AppDetails } from '../../shared'; import { HttpClient, RequestCanceler } from '../../shared/http/client'; @@ -100,6 +101,15 @@ export class Storage { return [promise, requestCanceler]; } + /** + * Returns metadata of a specific file + * @param fileId + */ + public getFile(fileId: string): [Promise, RequestCanceler] { + const { promise, requestCanceler } = this.client.getCancellable(`/files/${fileId}/meta`, this.headers()); + return [promise, requestCanceler]; + } + /** * Gets the files in a folder. * diff --git a/src/drive/storage/types.ts b/src/drive/storage/types.ts index da344025..894a3f30 100644 --- a/src/drive/storage/types.ts +++ b/src/drive/storage/types.ts @@ -86,6 +86,31 @@ export interface FetchFolderContentResponse { user_id: number; } +export interface FileMeta { + bucket: string; + createdAt: Date; + deleted: boolean; + deletedAt: Date | null; + encryptVersion: string; + fileId: string; + folder: string | null; + folderId: number; + folderUuid: string; + id: number; + modificationTime: string; + name: string; + plainName: string; + removed: boolean; + removedAt: Date | null; + size: string; + status: string; + type: string; + updatedAt: Date; + user: string | null; + userId: number; + uuid: string; +} + export interface FetchPaginatedFolderContentResponse { result: { bucket: string; @@ -131,7 +156,6 @@ export interface FetchTrashContentResponse { }[]; } - export enum EncryptionVersion { Aes03 = '03-aes', } @@ -234,5 +258,5 @@ export interface FetchLimitResponse { } export interface AddItemsToTrashPayload { - items: Array<{id: string, type: string}>; + items: Array<{ id: string; type: string }>; }