From 4771e0008dd26eadbb7eaff64255a6ec914fdadb Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 10 Jul 2017 19:43:21 +0200 Subject: Better typescript typing for a better world --- server/controllers/api/remote/pods.ts | 8 ++-- server/controllers/api/remote/videos.ts | 43 ++++++++++++++-------- server/controllers/api/users.ts | 16 +++++--- server/controllers/api/videos/abuse.ts | 4 +- server/controllers/api/videos/index.ts | 5 ++- server/controllers/api/videos/rate.ts | 23 +++++++++--- server/helpers/requests.ts | 18 +++++++-- server/lib/friends.ts | 14 ++++--- server/lib/request/abstract-request-scheduler.ts | 22 ++++++++--- server/lib/request/request-scheduler.ts | 8 ++-- .../lib/request/request-video-event-scheduler.ts | 22 +++++++---- server/lib/request/request-video-qadu-scheduler.ts | 31 +++++++++++++--- server/middlewares/secure.ts | 11 ++++-- server/models/pod/pod-interface.ts | 2 +- server/models/user/user-interface.ts | 3 +- server/models/user/user-video-rate-interface.ts | 2 +- server/models/video/video-abuse-interface.ts | 2 +- server/models/video/video-blacklist-interface.ts | 2 +- server/models/video/video-interface.ts | 2 +- 19 files changed, 162 insertions(+), 76 deletions(-) (limited to 'server') diff --git a/server/controllers/api/remote/pods.ts b/server/controllers/api/remote/pods.ts index 6319957d3..69bbd4378 100644 --- a/server/controllers/api/remote/pods.ts +++ b/server/controllers/api/remote/pods.ts @@ -2,6 +2,7 @@ import * as express from 'express' import { database as db } from '../../../initializers/database' import { checkSignature, signatureValidator } from '../../../middlewares' +import { PodSignature } from '../../../../shared' const remotePodsRouter = express.Router() @@ -21,12 +22,11 @@ export { // --------------------------------------------------------------------------- function removePods (req: express.Request, res: express.Response, next: express.NextFunction) { - const host = req.body.signature.host + const signature: PodSignature = req.body.signature + const host = signature.host db.Pod.loadByHost(host) - .then(pod => { - return pod.destroy() - }) + .then(pod => pod.destroy()) .then(() => res.type('json').status(204).end()) .catch(err => next(err)) } diff --git a/server/controllers/api/remote/videos.ts b/server/controllers/api/remote/videos.ts index fac85c3a8..96eab6d52 100644 --- a/server/controllers/api/remote/videos.ts +++ b/server/controllers/api/remote/videos.ts @@ -18,6 +18,17 @@ import { import { logger, retryTransactionWrapper } from '../../../helpers' import { quickAndDirtyUpdatesVideoToFriends } from '../../../lib' import { PodInstance, VideoInstance } from '../../../models' +import { + RemoteVideoRequest, + RemoteVideoCreateData, + RemoteVideoUpdateData, + RemoteVideoRemoveData, + RemoteVideoReportAbuseData, + RemoteQaduVideoRequest, + RemoteQaduVideoData, + RemoteVideoEventRequest, + RemoteVideoEventData +} from '../../../../shared' const ENDPOINT_ACTIONS = REQUEST_ENDPOINT_ACTIONS[REQUEST_ENDPOINTS.VIDEOS] @@ -60,11 +71,11 @@ export { // --------------------------------------------------------------------------- function remoteVideos (req: express.Request, res: express.Response, next: express.NextFunction) { - const requests = req.body.data + const requests: RemoteVideoRequest[] = req.body.data const fromPod = res.locals.secure.pod // We need to process in the same order to keep consistency - Promise.each(requests, (request: any) => { + Promise.each(requests, request => { const data = request.data // Get the function we need to call in order to process the request @@ -83,10 +94,10 @@ function remoteVideos (req: express.Request, res: express.Response, next: expres } function remoteVideosQadu (req: express.Request, res: express.Response, next: express.NextFunction) { - const requests = req.body.data + const requests: RemoteQaduVideoRequest[] = req.body.data const fromPod = res.locals.secure.pod - Promise.each(requests, (request: any) => { + Promise.each(requests, request => { const videoData = request.data return quickAndDirtyUpdateVideoRetryWrapper(videoData, fromPod) @@ -97,10 +108,10 @@ function remoteVideosQadu (req: express.Request, res: express.Response, next: ex } function remoteVideosEvents (req: express.Request, res: express.Response, next: express.NextFunction) { - const requests = req.body.data + const requests: RemoteVideoEventRequest[] = req.body.data const fromPod = res.locals.secure.pod - Promise.each(requests, (request: any) => { + Promise.each(requests, request => { const eventData = request.data return processVideosEventsRetryWrapper(eventData, fromPod) @@ -110,7 +121,7 @@ function remoteVideosEvents (req: express.Request, res: express.Response, next: return res.type('json').status(204).end() } -function processVideosEventsRetryWrapper (eventData: any, fromPod: PodInstance) { +function processVideosEventsRetryWrapper (eventData: RemoteVideoEventData, fromPod: PodInstance) { const options = { arguments: [ eventData, fromPod ], errorMessage: 'Cannot process videos events with many retries.' @@ -119,7 +130,7 @@ function processVideosEventsRetryWrapper (eventData: any, fromPod: PodInstance) return retryTransactionWrapper(processVideosEvents, options) } -function processVideosEvents (eventData: any, fromPod: PodInstance) { +function processVideosEvents (eventData: RemoteVideoEventData, fromPod: PodInstance) { return db.sequelize.transaction(t => { return fetchOwnedVideo(eventData.remoteId) @@ -172,7 +183,7 @@ function processVideosEvents (eventData: any, fromPod: PodInstance) { }) } -function quickAndDirtyUpdateVideoRetryWrapper (videoData: any, fromPod: PodInstance) { +function quickAndDirtyUpdateVideoRetryWrapper (videoData: RemoteQaduVideoData, fromPod: PodInstance) { const options = { arguments: [ videoData, fromPod ], errorMessage: 'Cannot update quick and dirty the remote video with many retries.' @@ -181,7 +192,7 @@ function quickAndDirtyUpdateVideoRetryWrapper (videoData: any, fromPod: PodInsta return retryTransactionWrapper(quickAndDirtyUpdateVideo, options) } -function quickAndDirtyUpdateVideo (videoData: any, fromPod: PodInstance) { +function quickAndDirtyUpdateVideo (videoData: RemoteQaduVideoData, fromPod: PodInstance) { let videoName return db.sequelize.transaction(t => { @@ -211,7 +222,7 @@ function quickAndDirtyUpdateVideo (videoData: any, fromPod: PodInstance) { } // Handle retries on fail -function addRemoteVideoRetryWrapper (videoToCreateData: any, fromPod: PodInstance) { +function addRemoteVideoRetryWrapper (videoToCreateData: RemoteVideoCreateData, fromPod: PodInstance) { const options = { arguments: [ videoToCreateData, fromPod ], errorMessage: 'Cannot insert the remote video with many retries.' @@ -220,7 +231,7 @@ function addRemoteVideoRetryWrapper (videoToCreateData: any, fromPod: PodInstanc return retryTransactionWrapper(addRemoteVideo, options) } -function addRemoteVideo (videoToCreateData: any, fromPod: PodInstance) { +function addRemoteVideo (videoToCreateData: RemoteVideoCreateData, fromPod: PodInstance) { logger.debug('Adding remote video "%s".', videoToCreateData.remoteId) return db.sequelize.transaction(t => { @@ -293,7 +304,7 @@ function addRemoteVideo (videoToCreateData: any, fromPod: PodInstance) { } // Handle retries on fail -function updateRemoteVideoRetryWrapper (videoAttributesToUpdate: any, fromPod: PodInstance) { +function updateRemoteVideoRetryWrapper (videoAttributesToUpdate: RemoteVideoUpdateData, fromPod: PodInstance) { const options = { arguments: [ videoAttributesToUpdate, fromPod ], errorMessage: 'Cannot update the remote video with many retries' @@ -302,7 +313,7 @@ function updateRemoteVideoRetryWrapper (videoAttributesToUpdate: any, fromPod: P return retryTransactionWrapper(updateRemoteVideo, options) } -function updateRemoteVideo (videoAttributesToUpdate: any, fromPod: PodInstance) { +function updateRemoteVideo (videoAttributesToUpdate: RemoteVideoUpdateData, fromPod: PodInstance) { logger.debug('Updating remote video "%s".', videoAttributesToUpdate.remoteId) return db.sequelize.transaction(t => { @@ -346,7 +357,7 @@ function updateRemoteVideo (videoAttributesToUpdate: any, fromPod: PodInstance) }) } -function removeRemoteVideo (videoToRemoveData: any, fromPod: PodInstance) { +function removeRemoteVideo (videoToRemoveData: RemoteVideoRemoveData, fromPod: PodInstance) { // We need the instance because we have to remove some other stuffs (thumbnail etc) return fetchRemoteVideo(fromPod.host, videoToRemoveData.remoteId) .then(video => { @@ -358,7 +369,7 @@ function removeRemoteVideo (videoToRemoveData: any, fromPod: PodInstance) { }) } -function reportAbuseRemoteVideo (reportData: any, fromPod: PodInstance) { +function reportAbuseRemoteVideo (reportData: RemoteVideoReportAbuseData, fromPod: PodInstance) { return fetchOwnedVideo(reportData.videoRemoteId) .then(video => { logger.debug('Reporting remote abuse for video %s.', video.id) diff --git a/server/controllers/api/users.ts b/server/controllers/api/users.ts index 845facd55..e79480521 100644 --- a/server/controllers/api/users.ts +++ b/server/controllers/api/users.ts @@ -17,7 +17,7 @@ import { setUsersSort, token } from '../../middlewares' -import { UserVideoRate as FormatedUserVideoRate } from '../../../shared' +import { UserVideoRate as FormatedUserVideoRate, UserCreate, UserUpdate } from '../../../shared' const usersRouter = express.Router() @@ -78,10 +78,12 @@ export { // --------------------------------------------------------------------------- function createUser (req: express.Request, res: express.Response, next: express.NextFunction) { + const body: UserCreate = req.body + const user = db.User.build({ - username: req.body.username, - password: req.body.password, - email: req.body.email, + username: body.username, + password: body.password, + email: body.email, displayNSFW: false, role: USER_ROLES.USER }) @@ -132,10 +134,12 @@ function removeUser (req: express.Request, res: express.Response, next: express. } function updateUser (req: express.Request, res: express.Response, next: express.NextFunction) { + const body: UserUpdate = req.body + db.User.loadByUsername(res.locals.oauth.token.user.username) .then(user => { - if (req.body.password) user.password = req.body.password - if (req.body.displayNSFW !== undefined) user.displayNSFW = req.body.displayNSFW + if (body.password) user.password = body.password + if (body.displayNSFW !== undefined) user.displayNSFW = body.displayNSFW return user.save() }) diff --git a/server/controllers/api/videos/abuse.ts b/server/controllers/api/videos/abuse.ts index 3b1b7f58e..7d2e3bcfb 100644 --- a/server/controllers/api/videos/abuse.ts +++ b/server/controllers/api/videos/abuse.ts @@ -17,6 +17,7 @@ import { setPagination } from '../../../middlewares' import { VideoInstance } from '../../../models' +import { VideoAbuseCreate } from '../../../../shared' const abuseVideoRouter = express.Router() @@ -63,10 +64,11 @@ function reportVideoAbuseRetryWrapper (req: express.Request, res: express.Respon function reportVideoAbuse (req: express.Request, res: express.Response) { const videoInstance = res.locals.video const reporterUsername = res.locals.oauth.token.User.username + const body: VideoAbuseCreate = req.body const abuse = { reporterUsername, - reason: req.body.reason, + reason: body.reason, videoId: videoInstance.id, reporterPodId: null // This is our pod that reported this abuse } diff --git a/server/controllers/api/videos/index.ts b/server/controllers/api/videos/index.ts index 3532c753e..4ae7ea2ed 100644 --- a/server/controllers/api/videos/index.ts +++ b/server/controllers/api/videos/index.ts @@ -39,6 +39,7 @@ import { renamePromise } from '../../../helpers' import { TagInstance } from '../../../models' +import { VideoCreate, VideoUpdate } from '../../../../shared' import { abuseVideoRouter } from './abuse' import { blacklistRouter } from './blacklist' @@ -155,7 +156,7 @@ function addVideoRetryWrapper (req: express.Request, res: express.Response, next } function addVideo (req: express.Request, res: express.Response, videoFile: Express.Multer.File) { - const videoInfos = req.body + const videoInfos: VideoCreate = req.body return db.sequelize.transaction(t => { const user = res.locals.oauth.token.User @@ -257,7 +258,7 @@ function updateVideoRetryWrapper (req: express.Request, res: express.Response, n function updateVideo (req: express.Request, res: express.Response) { const videoInstance = res.locals.video const videoFieldsSave = videoInstance.toJSON() - const videoInfosToUpdate = req.body + const videoInfosToUpdate: VideoUpdate = req.body return db.sequelize.transaction(t => { let tagsPromise: Promise diff --git a/server/controllers/api/videos/rate.ts b/server/controllers/api/videos/rate.ts index dfb5a450f..8456cbaf2 100644 --- a/server/controllers/api/videos/rate.ts +++ b/server/controllers/api/videos/rate.ts @@ -1,4 +1,5 @@ import * as express from 'express' +import * as Promise from 'bluebird' import { database as db } from '../../../initializers/database' import { @@ -18,6 +19,7 @@ import { authenticate, videoRateValidator } from '../../../middlewares' +import { UserVideoRateUpdate, VideoRateType } from '../../../../shared' const rateVideoRouter = express.Router() @@ -47,7 +49,8 @@ function rateVideoRetryWrapper (req: express.Request, res: express.Response, nex } function rateVideo (req: express.Request, res: express.Response) { - const rateType = req.body.rating + const body: UserVideoRateUpdate = req.body + const rateType = body.rating const videoInstance = res.locals.video const userInstance = res.locals.oauth.token.User @@ -62,24 +65,34 @@ function rateVideo (req: express.Request, res: express.Response) { if (rateType === VIDEO_RATE_TYPES.LIKE) likesToIncrement++ else if (rateType === VIDEO_RATE_TYPES.DISLIKE) dislikesToIncrement++ + let promise: Promise + // There was a previous rate, update it if (previousRate) { // We will remove the previous rate, so we will need to remove it from the video attribute if (previousRate.type === VIDEO_RATE_TYPES.LIKE) likesToIncrement-- else if (previousRate.type === VIDEO_RATE_TYPES.DISLIKE) dislikesToIncrement-- - previousRate.type = rateType + if (rateType === 'none') { // Destroy previous rate + promise = previousRate.destroy() + } else { // Update previous rate + previousRate.type = rateType as VideoRateType - return previousRate.save(options).then(() => ({ t, likesToIncrement, dislikesToIncrement })) - } else { // There was not a previous rate, insert a new one + promise = previousRate.save() + } + } else if (rateType !== 'none') { // There was not a previous rate, insert a new one if there is a rate const query = { userId: userInstance.id, videoId: videoInstance.id, type: rateType } - return db.UserVideoRate.create(query, options).then(() => ({ likesToIncrement, dislikesToIncrement })) + promise = db.UserVideoRate.create(query, options) + } else { + promise = Promise.resolve() } + + return promise.then(() => ({ likesToIncrement, dislikesToIncrement })) }) .then(({ likesToIncrement, dislikesToIncrement }) => { const options = { transaction: t } diff --git a/server/helpers/requests.ts b/server/helpers/requests.ts index 183f6df0d..d67d46044 100644 --- a/server/helpers/requests.ts +++ b/server/helpers/requests.ts @@ -8,6 +8,7 @@ import { CONFIG } from '../initializers' import { PodInstance } from '../models' +import { PodSignature } from '../../shared' import { sign } from './peertube-crypto' type MakeRetryRequestParams = { @@ -37,9 +38,18 @@ type MakeSecureRequestParams = { } function makeSecureRequest (params: MakeSecureRequestParams) { return new Promise<{ response: request.RequestResponse, body: any }>((res, rej) => { - const requestParams = { + const requestParams: { + url: string, + json: { + signature: PodSignature, + data: any + } + } = { url: REMOTE_SCHEME.HTTP + '://' + params.toPod.host + params.path, - json: {} + json: { + signature: null, + data: null + } } if (params.method !== 'POST') { @@ -58,14 +68,14 @@ function makeSecureRequest (params: MakeSecureRequestParams) { } sign(dataToSign).then(signature => { - requestParams.json['signature'] = { + requestParams.json.signature = { host, // Which host we pretend to be signature } // If there are data informations if (params.data) { - requestParams.json['data'] = params.data + requestParams.json.data = params.data } request.post(requestParams, (err, response, body) => err ? rej(err) : res({ response, body })) diff --git a/server/lib/friends.ts b/server/lib/friends.ts index 3487addbe..4d56e9eb2 100644 --- a/server/lib/friends.ts +++ b/server/lib/friends.ts @@ -34,7 +34,11 @@ import { import { RequestEndpoint, RequestVideoEventType, - RequestVideoQaduType + RequestVideoQaduType, + RemoteVideoCreateData, + RemoteVideoUpdateData, + RemoteVideoRemoveData, + RemoteVideoReportAbuseData } from '../../shared' type QaduParam = { videoId: string, type: RequestVideoQaduType } @@ -52,7 +56,7 @@ function activateSchedulers () { requestVideoEventScheduler.activate() } -function addVideoToFriends (videoData: Object, transaction: Sequelize.Transaction) { +function addVideoToFriends (videoData: RemoteVideoCreateData, transaction: Sequelize.Transaction) { const options = { type: ENDPOINT_ACTIONS.ADD, endpoint: REQUEST_ENDPOINTS.VIDEOS, @@ -62,7 +66,7 @@ function addVideoToFriends (videoData: Object, transaction: Sequelize.Transactio return createRequest(options) } -function updateVideoToFriends (videoData: Object, transaction: Sequelize.Transaction) { +function updateVideoToFriends (videoData: RemoteVideoUpdateData, transaction: Sequelize.Transaction) { const options = { type: ENDPOINT_ACTIONS.UPDATE, endpoint: REQUEST_ENDPOINTS.VIDEOS, @@ -72,7 +76,7 @@ function updateVideoToFriends (videoData: Object, transaction: Sequelize.Transac return createRequest(options) } -function removeVideoToFriends (videoParams: Object) { +function removeVideoToFriends (videoParams: RemoteVideoRemoveData) { const options = { type: ENDPOINT_ACTIONS.REMOVE, endpoint: REQUEST_ENDPOINTS.VIDEOS, @@ -82,7 +86,7 @@ function removeVideoToFriends (videoParams: Object) { return createRequest(options) } -function reportAbuseVideoToFriend (reportData: Object, video: VideoInstance, transaction: Sequelize.Transaction) { +function reportAbuseVideoToFriend (reportData: RemoteVideoReportAbuseData, video: VideoInstance, transaction: Sequelize.Transaction) { const options = { type: ENDPOINT_ACTIONS.REPORT_ABUSE, endpoint: REQUEST_ENDPOINTS.VIDEOS, diff --git a/server/lib/request/abstract-request-scheduler.ts b/server/lib/request/abstract-request-scheduler.ts index 0a9ff65d5..ce4e2ffd2 100644 --- a/server/lib/request/abstract-request-scheduler.ts +++ b/server/lib/request/abstract-request-scheduler.ts @@ -10,6 +10,15 @@ import { REQUESTS_INTERVAL } from '../../initializers' +interface RequestsObjects { + [ id: string ]: { + toPod: PodInstance + endpoint: string + ids: number[] // ids + datas: U[] + } +} + abstract class AbstractRequestScheduler { requestInterval: number limitPods: number @@ -27,7 +36,7 @@ abstract class AbstractRequestScheduler { abstract getRequestModel (): AbstractRequestClass abstract getRequestToPodModel (): AbstractRequestToPodClass - abstract buildRequestObjects (requestsGrouped: T): {} + abstract buildRequestsObjects (requestsGrouped: T): RequestsObjects activate () { logger.info('Requests scheduler activated.') @@ -67,7 +76,7 @@ abstract class AbstractRequestScheduler { // --------------------------------------------------------------------------- // Make a requests to friends of a certain type - protected makeRequest (toPod: PodInstance, requestEndpoint: string, requestsToMake: Object) { + protected makeRequest (toPod: PodInstance, requestEndpoint: string, requestsToMake: any) { const params = { toPod: toPod, method: 'POST' as 'POST', @@ -95,7 +104,7 @@ abstract class AbstractRequestScheduler { return this.getRequestModel().listWithLimitAndRandom(this.limitPods, this.limitPerPod) .then((requestsGrouped: T) => { // We want to group requests by destinations pod and endpoint - const requestsToMake = this.buildRequestObjects(requestsGrouped) + const requestsToMake = this.buildRequestsObjects(requestsGrouped) // If there are no requests, abort if (isEmpty(requestsToMake) === true) { @@ -105,8 +114,8 @@ abstract class AbstractRequestScheduler { logger.info('Making "%s" to friends.', this.description) - const goodPods = [] - const badPods = [] + const goodPods: number[] = [] + const badPods: number[] = [] return Promise.map(Object.keys(requestsToMake), hashKey => { const requestToMake = requestsToMake[hashKey] @@ -149,5 +158,6 @@ abstract class AbstractRequestScheduler { // --------------------------------------------------------------------------- export { - AbstractRequestScheduler + AbstractRequestScheduler, + RequestsObjects } diff --git a/server/lib/request/request-scheduler.ts b/server/lib/request/request-scheduler.ts index 3945ace20..696875dcf 100644 --- a/server/lib/request/request-scheduler.ts +++ b/server/lib/request/request-scheduler.ts @@ -1,11 +1,11 @@ import * as Sequelize from 'sequelize' import { database as db } from '../../initializers/database' -import { AbstractRequestScheduler } from './abstract-request-scheduler' +import { AbstractRequestScheduler, RequestsObjects } from './abstract-request-scheduler' import { logger } from '../../helpers' import { REQUESTS_LIMIT_PODS, REQUESTS_LIMIT_PER_POD } from '../../initializers' import { RequestsGrouped } from '../../models' -import { RequestEndpoint } from '../../../shared' +import { RequestEndpoint, RemoteVideoRequest } from '../../../shared' export type RequestSchedulerOptions = { type: string @@ -34,8 +34,8 @@ class RequestScheduler extends AbstractRequestScheduler { return db.RequestToPod } - buildRequestObjects (requestsGrouped: RequestsGrouped) { - const requestsToMakeGrouped = {} + buildRequestsObjects (requestsGrouped: RequestsGrouped) { + const requestsToMakeGrouped: RequestsObjects = {} Object.keys(requestsGrouped).forEach(toPodId => { requestsGrouped[toPodId].forEach(data => { diff --git a/server/lib/request/request-video-event-scheduler.ts b/server/lib/request/request-video-event-scheduler.ts index d4d714c02..8a008c51b 100644 --- a/server/lib/request/request-video-event-scheduler.ts +++ b/server/lib/request/request-video-event-scheduler.ts @@ -1,14 +1,14 @@ import * as Sequelize from 'sequelize' import { database as db } from '../../initializers/database' -import { AbstractRequestScheduler } from './abstract-request-scheduler' +import { AbstractRequestScheduler, RequestsObjects } from './abstract-request-scheduler' import { REQUESTS_VIDEO_EVENT_LIMIT_PODS, REQUESTS_VIDEO_EVENT_LIMIT_PER_POD, REQUEST_VIDEO_EVENT_ENDPOINT } from '../../initializers' import { RequestsVideoEventGrouped } from '../../models' -import { RequestVideoEventType } from '../../../shared' +import { RequestVideoEventType, RemoteVideoEventRequest, RemoteVideoEventType } from '../../../shared' export type RequestVideoEventSchedulerOptions = { type: RequestVideoEventType @@ -36,8 +36,8 @@ class RequestVideoEventScheduler extends AbstractRequestScheduler = {} /* Example: { @@ -47,7 +47,15 @@ class RequestVideoEventScheduler extends AbstractRequestScheduler extends RequestsObjects { + [ id: string ]: { + toPod: PodInstance + endpoint: string + ids: number[] // ids + datas: U[] + + videos: { + [ id: string ]: { + remoteId: string + likes?: number + dislikes?: number + views?: number + } + } + } +} export type RequestVideoQaduSchedulerOptions = { type: RequestVideoQaduType @@ -37,8 +56,8 @@ class RequestVideoQaduScheduler extends AbstractRequestScheduler = {} Object.keys(requests).forEach(toPodId => { requests[toPodId].forEach(data => { @@ -59,7 +78,7 @@ class RequestVideoQaduScheduler extends AbstractRequestScheduler { if (pod === null) { @@ -27,7 +30,7 @@ function checkSignature (req: express.Request, res: express.Response, next: expr signatureShouldBe = host } - const signatureOk = peertubeCryptoCheckSignature(pod.publicKey, signatureShouldBe, req.body.signature.signature) + const signatureOk = peertubeCryptoCheckSignature(pod.publicKey, signatureShouldBe, signatureObject.signature) if (signatureOk === true) { res.locals.secure = { @@ -37,11 +40,11 @@ function checkSignature (req: express.Request, res: express.Response, next: expr return next() } - logger.error('Signature is not okay in body for %s.', req.body.signature.host) + logger.error('Signature is not okay in body for %s.', signatureObject.host) return res.sendStatus(403) }) .catch(err => { - logger.error('Cannot get signed host in body.', { error: err.stack, signature: req.body.signature.signature }) + logger.error('Cannot get signed host in body.', { error: err.stack, signature: signatureObject.signature }) return res.sendStatus(500) }) } diff --git a/server/models/pod/pod-interface.ts b/server/models/pod/pod-interface.ts index f6963d47e..340d4f1a7 100644 --- a/server/models/pod/pod-interface.ts +++ b/server/models/pod/pod-interface.ts @@ -2,7 +2,7 @@ import * as Sequelize from 'sequelize' import * as Promise from 'bluebird' // Don't use barrel, import just what we need -import { Pod as FormatedPod } from '../../../shared/models/pod.model' +import { Pod as FormatedPod } from '../../../shared/models/pods/pod.model' export namespace PodMethods { export type ToFormatedJSON = (this: PodInstance) => FormatedPod diff --git a/server/models/user/user-interface.ts b/server/models/user/user-interface.ts index f743945f8..9bd3d2ebb 100644 --- a/server/models/user/user-interface.ts +++ b/server/models/user/user-interface.ts @@ -2,7 +2,8 @@ import * as Sequelize from 'sequelize' import * as Promise from 'bluebird' // Don't use barrel, import just what we need -import { UserRole, User as FormatedUser } from '../../../shared/models/user.model' +import { User as FormatedUser } from '../../../shared/models/users/user.model' +import { UserRole } from '../../../shared/models/users/user-role.type' import { ResultList } from '../../../shared/models/result-list.model' export namespace UserMethods { diff --git a/server/models/user/user-video-rate-interface.ts b/server/models/user/user-video-rate-interface.ts index e0b65a13d..f501f08b7 100644 --- a/server/models/user/user-video-rate-interface.ts +++ b/server/models/user/user-video-rate-interface.ts @@ -1,7 +1,7 @@ import * as Sequelize from 'sequelize' import * as Promise from 'bluebird' -import { VideoRateType } from '../../../shared/models/user-video-rate.model' +import { VideoRateType } from '../../../shared/models/videos/video-rate.type' export namespace UserVideoRateMethods { export type Load = (userId: number, videoId: string, transaction: Sequelize.Transaction) => Promise diff --git a/server/models/video/video-abuse-interface.ts b/server/models/video/video-abuse-interface.ts index 75647fe0e..d6724d36f 100644 --- a/server/models/video/video-abuse-interface.ts +++ b/server/models/video/video-abuse-interface.ts @@ -5,7 +5,7 @@ import { PodInstance } from '../pod' import { ResultList } from '../../../shared' // Don't use barrel, import just what we need -import { VideoAbuse as FormatedVideoAbuse } from '../../../shared/models/video-abuse.model' +import { VideoAbuse as FormatedVideoAbuse } from '../../../shared/models/videos/video-abuse.model' export namespace VideoAbuseMethods { export type ToFormatedJSON = (this: VideoAbuseInstance) => FormatedVideoAbuse diff --git a/server/models/video/video-blacklist-interface.ts b/server/models/video/video-blacklist-interface.ts index 5ca423801..47a510231 100644 --- a/server/models/video/video-blacklist-interface.ts +++ b/server/models/video/video-blacklist-interface.ts @@ -4,7 +4,7 @@ import * as Promise from 'bluebird' import { ResultList } from '../../../shared' // Don't use barrel, import just what we need -import { BlacklistedVideo as FormatedBlacklistedVideo } from '../../../shared/models/video-blacklist.model' +import { BlacklistedVideo as FormatedBlacklistedVideo } from '../../../shared/models/videos/video-blacklist.model' export namespace BlacklistedVideoMethods { export type ToFormatedJSON = (this: BlacklistedVideoInstance) => FormatedBlacklistedVideo diff --git a/server/models/video/video-interface.ts b/server/models/video/video-interface.ts index c3e3365d5..b836d6da6 100644 --- a/server/models/video/video-interface.ts +++ b/server/models/video/video-interface.ts @@ -5,7 +5,7 @@ import { AuthorInstance } from './author-interface' import { TagAttributes, TagInstance } from './tag-interface' // Don't use barrel, import just what we need -import { Video as FormatedVideo } from '../../../shared/models/video.model' +import { Video as FormatedVideo } from '../../../shared/models/videos/video.model' import { ResultList } from '../../../shared/models/result-list.model' export type FormatedAddRemoteVideo = { -- cgit v1.2.3