@paperbits/common
Version:
Paperbits common components.
62 lines (53 loc) • 2.25 kB
text/typescript
import { MediaContract } from "../media/mediaContract";
import { Query, Page } from "../persistence";
/**
* Service for managing media files.
*/
export interface IMediaService {
/**
* Searches for media files that contain specified pattern in their title, description or keywords.
* @param query {Query<MediaContract>} Search query.
*/
search(query: Query<MediaContract>): Promise<Page<MediaContract>>;
/**
* Returns media file metadata by specified key.
* @param key {string} Media key, e.g. `uploads/1bbf57f8-8954-46bb-9c33-5b54643f9376`;
*/
getMediaByKey(key: string): Promise<MediaContract>;
/**
* Return media file metadata by permalink.
* @param permalink {string} Permanent link of the media.
*/
getMediaByPermalink(permalink: string): Promise<MediaContract>;
/**
* Deletes specified media file.
* @param media {MediaContract} Contract describing media file metadata.
*/
deleteMedia(media: MediaContract): Promise<void>;
/**
* Creates new media files.
* @param name Name of media file, i.e. `logo.png`.
* @param content Content in form of byte array.
* @param contentType Content type, i.e. `image/png`.
*/
createMedia(name: string, content: Uint8Array, contentType?: string): Promise<MediaContract>;
/**
* Creates reference to external media file.
* @param name Name of media file, i.e. `logo.png`.
* @param referenceUrl URL, i.e. "https://cdn.paperbits.io/images/logo.svg"
* @param contentType Content type, i.e. `image/png`.
*/
createMediaUrl(name: string, referenceUrl: string, mimeType?: string): Promise<MediaContract>;
/**
* Updates media file metadata.
* @param media {MediaContract} Contract describing media file metadata.
*/
updateMedia(media: MediaContract): Promise<void>;
/**
* Update media file content.
* @param media metadata to Update
* @param content New content in form of byte array.
* @param contentType Content type, i.e. `image/png`.
*/
updateMediaContent(media: MediaContract, content: Uint8Array): Promise<MediaContract>;
}