From 3fd3ab2d34d512b160a5e6084d7609be7b4f4452 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 12 Dec 2017 17:53:50 +0100 Subject: Move models to typescript-sequelize --- server/helpers/activitypub.ts | 10 +++++----- server/helpers/custom-validators/accounts.ts | 13 ++++++------- .../helpers/custom-validators/activitypub/account.ts | 2 +- .../helpers/custom-validators/activitypub/activity.ts | 4 ++-- server/helpers/custom-validators/activitypub/misc.ts | 4 ++-- server/helpers/custom-validators/index.ts | 9 --------- server/helpers/custom-validators/video-channels.ts | 10 +++++----- server/helpers/custom-validators/videos.ts | 19 ++++++++++++------- server/helpers/custom-validators/webfinger.ts | 8 ++------ server/helpers/ffmpeg-utils.ts | 2 +- server/helpers/index.ts | 1 - server/helpers/logger.ts | 2 +- server/helpers/peertube-crypto.ts | 6 +++--- server/helpers/utils.ts | 17 +++++++++-------- server/helpers/webfinger.ts | 4 ++-- 15 files changed, 51 insertions(+), 60 deletions(-) delete mode 100644 server/helpers/custom-validators/index.ts (limited to 'server/helpers') diff --git a/server/helpers/activitypub.ts b/server/helpers/activitypub.ts index 1ea6422ca..43907b596 100644 --- a/server/helpers/activitypub.ts +++ b/server/helpers/activitypub.ts @@ -1,8 +1,8 @@ -import { Activity } from '../../shared/models/activitypub/activity' -import { ResultList } from '../../shared/models/result-list.model' -import { AccountInstance } from '../models/account/account-interface' +import { ResultList } from '../../shared/models' +import { Activity } from '../../shared/models/activitypub' +import { ACTIVITY_PUB } from '../initializers' +import { AccountModel } from '../models/account/account' import { signObject } from './peertube-crypto' -import { ACTIVITY_PUB } from '../initializers/constants' function activityPubContextify (data: T) { return Object.assign(data,{ @@ -71,7 +71,7 @@ function activityPubCollectionPagination (url: string, page: any, result: Result return orderedCollectionPagination } -function buildSignedActivity (byAccount: AccountInstance, data: Object) { +function buildSignedActivity (byAccount: AccountModel, data: Object) { const activity = activityPubContextify(data) return signObject(byAccount, activity) as Promise diff --git a/server/helpers/custom-validators/accounts.ts b/server/helpers/custom-validators/accounts.ts index e3c477414..8dc5d1f0d 100644 --- a/server/helpers/custom-validators/accounts.ts +++ b/server/helpers/custom-validators/accounts.ts @@ -2,8 +2,7 @@ import * as Bluebird from 'bluebird' import { Response } from 'express' import 'express-validator' import * as validator from 'validator' -import { database as db } from '../../initializers' -import { AccountInstance } from '../../models' +import { AccountModel } from '../../models/account/account' import { isUserUsernameValid } from './users' function isAccountNameValid (value: string) { @@ -11,24 +10,24 @@ function isAccountNameValid (value: string) { } function isAccountIdExist (id: number | string, res: Response) { - let promise: Bluebird + let promise: Bluebird if (validator.isInt('' + id)) { - promise = db.Account.load(+id) + promise = AccountModel.load(+id) } else { // UUID - promise = db.Account.loadByUUID('' + id) + promise = AccountModel.loadByUUID('' + id) } return isAccountExist(promise, res) } function isLocalAccountNameExist (name: string, res: Response) { - const promise = db.Account.loadLocalByName(name) + const promise = AccountModel.loadLocalByName(name) return isAccountExist(promise, res) } -async function isAccountExist (p: Bluebird, res: Response) { +async function isAccountExist (p: Bluebird, res: Response) { const account = await p if (!account) { diff --git a/server/helpers/custom-validators/activitypub/account.ts b/server/helpers/custom-validators/activitypub/account.ts index cab39a654..10bf81e8a 100644 --- a/server/helpers/custom-validators/activitypub/account.ts +++ b/server/helpers/custom-validators/activitypub/account.ts @@ -1,5 +1,5 @@ import * as validator from 'validator' -import { CONSTRAINTS_FIELDS } from '../../../initializers/constants' +import { CONSTRAINTS_FIELDS } from '../../../initializers' import { isAccountNameValid } from '../accounts' import { exists, isUUIDValid } from '../misc' import { isActivityPubUrlValid, isBaseActivityValid } from './misc' diff --git a/server/helpers/custom-validators/activitypub/activity.ts b/server/helpers/custom-validators/activitypub/activity.ts index 3a0e8197c..043e3c55e 100644 --- a/server/helpers/custom-validators/activitypub/activity.ts +++ b/server/helpers/custom-validators/activitypub/activity.ts @@ -1,8 +1,9 @@ import * as validator from 'validator' -import { Activity, ActivityType } from '../../../../shared/models/activitypub/activity' +import { Activity, ActivityType } from '../../../../shared/models/activitypub' import { isAccountAcceptActivityValid, isAccountDeleteActivityValid, isAccountFollowActivityValid } from './account' import { isAnnounceActivityValid } from './announce' import { isActivityPubUrlValid } from './misc' +import { isDislikeActivityValid, isLikeActivityValid } from './rate' import { isUndoActivityValid } from './undo' import { isVideoChannelCreateActivityValid, isVideoChannelDeleteActivityValid, isVideoChannelUpdateActivityValid } from './video-channels' import { @@ -12,7 +13,6 @@ import { isVideoTorrentUpdateActivityValid } from './videos' import { isViewActivityValid } from './view' -import { isDislikeActivityValid, isLikeActivityValid } from './rate' function isRootActivityValid (activity: any) { return Array.isArray(activity['@context']) && diff --git a/server/helpers/custom-validators/activitypub/misc.ts b/server/helpers/custom-validators/activitypub/misc.ts index 1bbfd0fc4..65f5ca809 100644 --- a/server/helpers/custom-validators/activitypub/misc.ts +++ b/server/helpers/custom-validators/activitypub/misc.ts @@ -1,7 +1,7 @@ import * as validator from 'validator' -import { exists } from '../misc' +import { CONSTRAINTS_FIELDS } from '../../../initializers' import { isTestInstance } from '../../core-utils' -import { CONSTRAINTS_FIELDS } from '../../../initializers/constants' +import { exists } from '../misc' function isActivityPubUrlValid (url: string) { const isURLOptions = { diff --git a/server/helpers/custom-validators/index.ts b/server/helpers/custom-validators/index.ts deleted file mode 100644 index d3b2f5393..000000000 --- a/server/helpers/custom-validators/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './activitypub' -export * from './misc' -export * from './servers' -export * from './servers' -export * from './users' -export * from './accounts' -export * from './video-channels' -export * from './videos' -export * from './webfinger' diff --git a/server/helpers/custom-validators/video-channels.ts b/server/helpers/custom-validators/video-channels.ts index 3de9f041b..6bc96bf51 100644 --- a/server/helpers/custom-validators/video-channels.ts +++ b/server/helpers/custom-validators/video-channels.ts @@ -2,8 +2,8 @@ import * as express from 'express' import 'express-validator' import 'multer' import * as validator from 'validator' -import { CONSTRAINTS_FIELDS, database as db } from '../../initializers' -import { VideoChannelInstance } from '../../models' +import { CONSTRAINTS_FIELDS } from '../../initializers' +import { VideoChannelModel } from '../../models/video/video-channel' import { exists } from './misc' const VIDEO_CHANNELS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEO_CHANNELS @@ -17,11 +17,11 @@ function isVideoChannelNameValid (value: string) { } async function isVideoChannelExist (id: string, res: express.Response) { - let videoChannel: VideoChannelInstance + let videoChannel: VideoChannelModel if (validator.isInt(id)) { - videoChannel = await db.VideoChannel.loadAndPopulateAccount(+id) + videoChannel = await VideoChannelModel.loadAndPopulateAccount(+id) } else { // UUID - videoChannel = await db.VideoChannel.loadByUUIDAndPopulateAccount(id) + videoChannel = await VideoChannelModel.loadByUUIDAndPopulateAccount(id) } if (!videoChannel) { diff --git a/server/helpers/custom-validators/videos.ts b/server/helpers/custom-validators/videos.ts index 37fa8b08a..ee9d0ed19 100644 --- a/server/helpers/custom-validators/videos.ts +++ b/server/helpers/custom-validators/videos.ts @@ -4,10 +4,15 @@ import { values } from 'lodash' import 'multer' import * as validator from 'validator' import { VideoRateType } from '../../../shared' -import { CONSTRAINTS_FIELDS, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_RATE_TYPES } from '../../initializers' -import { VIDEO_PRIVACIES } from '../../initializers/constants' -import { database as db } from '../../initializers/database' -import { VideoInstance } from '../../models/video/video-interface' +import { + CONSTRAINTS_FIELDS, + VIDEO_CATEGORIES, + VIDEO_LANGUAGES, + VIDEO_LICENCES, + VIDEO_PRIVACIES, + VIDEO_RATE_TYPES +} from '../../initializers' +import { VideoModel } from '../../models/video/video' import { exists, isArray } from './misc' const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS @@ -100,12 +105,12 @@ function isVideoFileSizeValid (value: string) { } async function isVideoExist (id: string, res: Response) { - let video: VideoInstance + let video: VideoModel if (validator.isInt(id)) { - video = await db.Video.loadAndPopulateAccountAndServerAndTags(+id) + video = await VideoModel.loadAndPopulateAccountAndServerAndTags(+id) } else { // UUID - video = await db.Video.loadByUUIDAndPopulateAccountAndServerAndTags(id) + video = await VideoModel.loadByUUIDAndPopulateAccountAndServerAndTags(id) } if (!video) { diff --git a/server/helpers/custom-validators/webfinger.ts b/server/helpers/custom-validators/webfinger.ts index e93115d81..38f6b938d 100644 --- a/server/helpers/custom-validators/webfinger.ts +++ b/server/helpers/custom-validators/webfinger.ts @@ -1,6 +1,4 @@ -import 'express-validator' -import 'multer' -import { CONFIG } from '../../initializers/constants' +import { CONFIG } from '../../initializers' import { exists } from './misc' function isWebfingerResourceValid (value: string) { @@ -13,9 +11,7 @@ function isWebfingerResourceValid (value: string) { const host = accountParts[1] - if (host !== CONFIG.WEBSERVER.HOST) return false - - return true + return host === CONFIG.WEBSERVER.HOST } // --------------------------------------------------------------------------- diff --git a/server/helpers/ffmpeg-utils.ts b/server/helpers/ffmpeg-utils.ts index 8ad205961..c2581f460 100644 --- a/server/helpers/ffmpeg-utils.ts +++ b/server/helpers/ffmpeg-utils.ts @@ -1,5 +1,5 @@ import * as ffmpeg from 'fluent-ffmpeg' -import { VideoResolution } from '../../shared/models/videos/video-resolution.enum' +import { VideoResolution } from '../../shared/models/videos' import { CONFIG } from '../initializers' function getVideoFileHeight (path: string) { diff --git a/server/helpers/index.ts b/server/helpers/index.ts index 2c7ac3954..d96bc48e9 100644 --- a/server/helpers/index.ts +++ b/server/helpers/index.ts @@ -1,7 +1,6 @@ export * from './activitypub' export * from './core-utils' export * from './logger' -export * from './custom-validators' export * from './ffmpeg-utils' export * from './database-utils' export * from './peertube-crypto' diff --git a/server/helpers/logger.ts b/server/helpers/logger.ts index 8d809d16d..2676133db 100644 --- a/server/helpers/logger.ts +++ b/server/helpers/logger.ts @@ -2,7 +2,7 @@ import * as mkdirp from 'mkdirp' import * as path from 'path' import * as winston from 'winston' -import { CONFIG } from '../initializers/constants' +import { CONFIG } from '../initializers' const label = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT diff --git a/server/helpers/peertube-crypto.ts b/server/helpers/peertube-crypto.ts index 74e4cc703..c4c735cb8 100644 --- a/server/helpers/peertube-crypto.ts +++ b/server/helpers/peertube-crypto.ts @@ -1,5 +1,5 @@ import { BCRYPT_SALT_SIZE, PRIVATE_RSA_KEY_SIZE } from '../initializers' -import { AccountInstance } from '../models/account/account-interface' +import { AccountModel } from '../models/account/account' import { bcryptComparePromise, bcryptGenSaltPromise, bcryptHashPromise, createPrivateKey, getPublicKey } from './core-utils' import { jsig } from './custom-jsonld-signature' import { logger } from './logger' @@ -13,7 +13,7 @@ async function createPrivateAndPublicKeys () { return { privateKey: key, publicKey } } -function isSignatureVerified (fromAccount: AccountInstance, signedDocument: object) { +function isSignatureVerified (fromAccount: AccountModel, signedDocument: object) { const publicKeyObject = { '@context': jsig.SECURITY_CONTEXT_URL, '@id': fromAccount.url, @@ -40,7 +40,7 @@ function isSignatureVerified (fromAccount: AccountInstance, signedDocument: obje }) } -function signObject (byAccount: AccountInstance, data: any) { +function signObject (byAccount: AccountModel, data: any) { const options = { privateKeyPem: byAccount.privateKey, creator: byAccount.url diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts index 3464341e6..cb5e536b8 100644 --- a/server/helpers/utils.ts +++ b/server/helpers/utils.ts @@ -1,9 +1,10 @@ import * as express from 'express' -import * as Sequelize from 'sequelize' +import { Model } from 'sequelize-typescript' import { ResultList } from '../../shared' -import { VideoResolution } from '../../shared/models/videos/video-resolution.enum' -import { CONFIG, database as db } from '../initializers' -import { AccountInstance } from '../models/account/account-interface' +import { VideoResolution } from '../../shared/models/videos' +import { CONFIG } from '../initializers' +import { AccountModel } from '../models/account/account' +import { UserModel } from '../models/account/user' import { pseudoRandomBytesPromise } from './core-utils' import { logger } from './logger' @@ -46,7 +47,7 @@ async function isSignupAllowed () { return true } - const totalUsers = await db.User.countTotal() + const totalUsers = await UserModel.countTotal() return totalUsers < CONFIG.SIGNUP.LIMIT } @@ -72,17 +73,17 @@ function computeResolutionsToTranscode (videoFileHeight: number) { return resolutionsEnabled } -function resetSequelizeInstance (instance: Sequelize.Instance, savedFields: object) { +function resetSequelizeInstance (instance: Model, savedFields: object) { Object.keys(savedFields).forEach(key => { const value = savedFields[key] instance.set(key, value) }) } -let serverAccount: AccountInstance +let serverAccount: AccountModel async function getServerAccount () { if (serverAccount === undefined) { - serverAccount = await db.Account.loadApplication() + serverAccount = await AccountModel.loadApplication() } if (!serverAccount) { diff --git a/server/helpers/webfinger.ts b/server/helpers/webfinger.ts index ab2888981..d98068cd7 100644 --- a/server/helpers/webfinger.ts +++ b/server/helpers/webfinger.ts @@ -1,8 +1,8 @@ import * as WebFinger from 'webfinger.js' import { WebFingerData } from '../../shared' -import { fetchRemoteAccount } from '../lib/activitypub/account' +import { fetchRemoteAccount } from '../lib/activitypub' import { isTestInstance } from './core-utils' -import { isActivityPubUrlValid } from './custom-validators' +import { isActivityPubUrlValid } from './custom-validators/activitypub' const webfinger = new WebFinger({ webfist_fallback: false, -- cgit v1.2.3