From 09700934b90e2ac7b1b9ed1694d9d4d52735e2e1 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 19 Mar 2018 11:04:40 +0100 Subject: BEARKING CHANGE: Update videos API response before beta --- client/src/app/shared/video/video-details.model.ts | 52 ++++++---------------- client/src/app/shared/video/video-edit.model.ts | 8 ++-- client/src/app/shared/video/video.model.ts | 13 ++---- 3 files changed, 22 insertions(+), 51 deletions(-) (limited to 'client/src/app/shared/video') diff --git a/client/src/app/shared/video/video-details.model.ts b/client/src/app/shared/video/video-details.model.ts index 1882a8165..9fc326beb 100644 --- a/client/src/app/shared/video/video-details.model.ts +++ b/client/src/app/shared/video/video-details.model.ts @@ -1,57 +1,33 @@ import { - UserRight, VideoChannel, VideoDetails as VideoDetailsServerModel, VideoFile, VideoPrivacy, + UserRight, + VideoChannel, + VideoDetails as VideoDetailsServerModel, + VideoFile, + VideoPrivacy, VideoResolution } from '../../../../../shared' import { Account } from '../../../../../shared/models/actors' +import { VideoConstant } from '../../../../../shared/models/videos/video.model' import { AuthUser } from '../../core' import { Video } from '../../shared/video/video.model' export class VideoDetails extends Video implements VideoDetailsServerModel { - accountName: string - by: string - createdAt: Date - updatedAt: Date - categoryLabel: string - category: number - licenceLabel: string - licence: number - languageLabel: string - language: number - description: string + privacy: VideoConstant + descriptionPath: string support: string - duration: number - durationLabel: string - id: number - uuid: string - isLocal: boolean - name: string - serverHost: string + channel: VideoChannel tags: string[] - thumbnailPath: string - thumbnailUrl: string - previewPath: string - previewUrl: string - embedPath: string - embedUrl: string - views: number - likes: number - dislikes: number - nsfw: boolean - descriptionPath: string files: VideoFile[] - channel: VideoChannel - privacy: VideoPrivacy - privacyLabel: string account: Account + commentsEnabled: boolean + likesPercent: number dislikesPercent: number - commentsEnabled: boolean constructor (hash: VideoDetailsServerModel) { super(hash) this.privacy = hash.privacy - this.privacyLabel = hash.privacyLabel this.descriptionPath = hash.descriptionPath this.files = hash.files this.channel = hash.channel @@ -72,14 +48,14 @@ export class VideoDetails extends Video implements VideoDetailsServerModel { // If the download speed is too bad, return the lowest resolution we have if (betterResolutionFile === undefined) { - betterResolutionFile = this.files.find(f => f.resolution === VideoResolution.H_240P) + betterResolutionFile = this.files.find(f => f.resolution.id === VideoResolution.H_240P) } return betterResolutionFile.magnetUri } isRemovableBy (user: AuthUser) { - return user && this.isLocal === true && (this.accountName === user.username || user.hasRight(UserRight.REMOVE_ANY_VIDEO)) + return user && this.isLocal === true && (this.account.name === user.username || user.hasRight(UserRight.REMOVE_ANY_VIDEO)) } isBlackistableBy (user: AuthUser) { @@ -87,7 +63,7 @@ export class VideoDetails extends Video implements VideoDetailsServerModel { } isUpdatableBy (user: AuthUser) { - return user && this.isLocal === true && (this.accountName === user.username || user.hasRight(UserRight.UPDATE_ANY_VIDEO)) + return user && this.isLocal === true && (this.account.name === user.username || user.hasRight(UserRight.UPDATE_ANY_VIDEO)) } buildLikeAndDislikePercents () { diff --git a/client/src/app/shared/video/video-edit.model.ts b/client/src/app/shared/video/video-edit.model.ts index a8bbb63eb..c1a70d1b3 100644 --- a/client/src/app/shared/video/video-edit.model.ts +++ b/client/src/app/shared/video/video-edit.model.ts @@ -24,16 +24,16 @@ export class VideoEdit { if (videoDetails) { this.id = videoDetails.id this.uuid = videoDetails.uuid - this.category = videoDetails.category - this.licence = videoDetails.licence - this.language = videoDetails.language + this.category = videoDetails.category.id + this.licence = videoDetails.licence.id + this.language = videoDetails.language.id this.description = videoDetails.description this.name = videoDetails.name this.tags = videoDetails.tags this.nsfw = videoDetails.nsfw this.commentsEnabled = videoDetails.commentsEnabled this.channel = videoDetails.channel.id - this.privacy = videoDetails.privacy + this.privacy = videoDetails.privacy.id this.support = videoDetails.support this.thumbnailUrl = videoDetails.thumbnailUrl this.previewUrl = videoDetails.previewUrl diff --git a/client/src/app/shared/video/video.model.ts b/client/src/app/shared/video/video.model.ts index 50ca9eb99..7b68933a1 100644 --- a/client/src/app/shared/video/video.model.ts +++ b/client/src/app/shared/video/video.model.ts @@ -2,18 +2,16 @@ import { Account } from '@app/shared/account/account.model' import { User } from '../' import { Video as VideoServerModel } from '../../../../../shared' import { Avatar } from '../../../../../shared/models/avatars/avatar.model' +import { VideoConstant } from '../../../../../shared/models/videos/video.model' import { getAbsoluteAPIUrl } from '../misc/utils' export class Video implements VideoServerModel { by: string createdAt: Date updatedAt: Date - categoryLabel: string - category: number - licenceLabel: string - licence: number - languageLabel: string - language: number + category: VideoConstant + licence: VideoConstant + language: VideoConstant description: string duration: number durationLabel: string @@ -58,11 +56,8 @@ export class Video implements VideoServerModel { const absoluteAPIUrl = getAbsoluteAPIUrl() this.createdAt = new Date(hash.createdAt.toString()) - this.categoryLabel = hash.categoryLabel this.category = hash.category - this.licenceLabel = hash.licenceLabel this.licence = hash.licence - this.languageLabel = hash.languageLabel this.language = hash.language this.description = hash.description this.duration = hash.duration -- cgit v1.2.3