+import { Video as VideoServerModel } from '../../../../../shared';
import { User } from '../../shared';
-export class Video {
+export class Video implements VideoServerModel {
author: string;
by: string;
createdAt: Date;
categoryLabel: string;
- category: string;
+ category: number;
licenceLabel: string;
- licence: string;
+ licence: number;
languageLabel: string;
- language: string;
+ language: number;
description: string;
- duration: string;
+ duration: number;
+ durationLabel: string;
id: string;
isLocal: boolean;
magnetUri: string;
author: string,
createdAt: string,
categoryLabel: string,
- category: string,
+ category: number,
licenceLabel: string,
- licence: string,
+ licence: number,
languageLabel: string;
- language: string;
+ language: number;
description: string,
duration: number;
id: string,
this.languageLabel = hash.languageLabel;
this.language = hash.language;
this.description = hash.description;
- this.duration = Video.createDurationString(hash.duration);
+ this.duration = hash.duration;
+ this.durationLabel = Video.createDurationString(hash.duration);
this.id = hash.id;
this.isLocal = hash.isLocal;
this.magnetUri = hash.magnetUri;
this.by = Video.createByString(hash.author, hash.podHost);
}
- isRemovableBy(user: User) {
- return this.isLocal === true && user && this.author === user.username;
+ isRemovableBy(user) {
+ return user && this.isLocal === true && (this.author === user.username || user.isAdmin() === true);
+ }
+
+ isBlackistableBy(user) {
+ return user && user.isAdmin() === true && this.isLocal === false;
+ }
+
+ isUpdatableBy(user) {
+ return user && this.isLocal === true && user.username === this.author;
}
isVideoNSFWForUser(user: User) {