40 lines
830 B
TypeScript
40 lines
830 B
TypeScript
import { ObjectId } from 'mongodb';
|
|
|
|
export interface IContent {
|
|
id?: ObjectId;
|
|
|
|
creatorUserId: string;
|
|
contentUrl: string; // remote resource of file/media
|
|
createdDate: Date;
|
|
|
|
// visitCount
|
|
}
|
|
|
|
// ? persist length of clip for easier read access for others...
|
|
// ? they have to load it anyway and will get metadata anyway?
|
|
export class ContentBlock implements IContent {
|
|
constructor(
|
|
public creatorUserId: string,
|
|
public contentUrl: string,
|
|
|
|
public contentType: ContentType,
|
|
public blobType: string,
|
|
|
|
public createdDate = new Date(),
|
|
|
|
public metadata?: object,
|
|
public id?: ObjectId,
|
|
) {}
|
|
}
|
|
|
|
export enum ContentType {
|
|
audio = 'audio',
|
|
link = 'link',
|
|
image = 'image',
|
|
code = 'code',
|
|
}
|
|
|
|
export function isUrlImage(url: string) {
|
|
return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
|
|
}
|