]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/videos/shared/video.model.ts
Update client modules
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / shared / video.model.ts
index 404e3bf45fea496ac0ca3e29dac42190085a3e9a..0cf4039df312b5f33a1d354710af7d50747db2a5 100644 (file)
@@ -1,17 +1,19 @@
+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;
@@ -41,11 +43,11 @@ export class Video {
     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,
@@ -69,7 +71,8 @@ export class Video {
     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;
@@ -85,8 +88,16 @@ export class Video {
     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) {