]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-video-comment/video-comment.model.ts
Agnostic actor image storage
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-video-comment / video-comment.model.ts
index e854431968b6058b6ceaa2dcc611af7a3d6e5289..bf718ae082684840ae9ab6d19153dcdb781f7f6d 100644 (file)
@@ -1,6 +1,6 @@
 import { getAbsoluteAPIUrl } from '@app/helpers'
-import { Actor } from '@app/shared/shared-main'
-import { Account as AccountInterface, VideoComment as VideoCommentServerModel } from '@shared/models'
+import { Account, Actor } from '@app/shared/shared-main'
+import { Account as AccountInterface, VideoComment as VideoCommentServerModel, VideoCommentAdmin as VideoCommentAdminServerModel } from '@shared/models'
 
 export class VideoComment implements VideoCommentServerModel {
   id: number
@@ -38,7 +38,7 @@ export class VideoComment implements VideoCommentServerModel {
 
     if (this.account) {
       this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
-      this.accountAvatarUrl = Actor.GET_ACTOR_AVATAR_URL(this.account)
+      this.accountAvatarUrl = Account.GET_ACTOR_AVATAR_URL(this.account)
 
       const absoluteAPIUrl = getAbsoluteAPIUrl()
       const thisHost = new URL(absoluteAPIUrl).host
@@ -46,3 +46,60 @@ export class VideoComment implements VideoCommentServerModel {
     }
   }
 }
+
+export class VideoCommentAdmin implements VideoCommentAdminServerModel {
+  id: number
+  url: string
+  text: string
+  textHtml: string
+
+  threadId: number
+  inReplyToCommentId: number
+
+  createdAt: Date | string
+  updatedAt: Date | string
+
+  account: AccountInterface & { localUrl?: string }
+  localUrl: string
+
+  video: {
+    id: number
+    uuid: string
+    name: string
+    localUrl: string
+  }
+
+  by: string
+  accountAvatarUrl: string
+
+  constructor (hash: VideoCommentAdminServerModel, textHtml: string) {
+    this.id = hash.id
+    this.url = hash.url
+    this.text = hash.text
+    this.textHtml = textHtml
+
+    this.threadId = hash.threadId
+    this.inReplyToCommentId = hash.inReplyToCommentId
+
+    this.createdAt = new Date(hash.createdAt.toString())
+    this.updatedAt = new Date(hash.updatedAt.toString())
+
+    this.video = {
+      id: hash.video.id,
+      uuid: hash.video.uuid,
+      name: hash.video.name,
+      localUrl: '/videos/watch/' + hash.video.uuid
+    }
+
+    this.localUrl = this.video.localUrl + ';threadId=' + this.threadId
+
+    this.account = hash.account
+
+    if (this.account) {
+      this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
+      this.accountAvatarUrl = Account.GET_ACTOR_AVATAR_URL(this.account)
+
+      this.account.localUrl = '/accounts/' + this.by
+    }
+  }
+}