X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fuser-subscriptions.ts;h=d01043c176c8a6fb3490af8945e7adb388f3ddcc;hb=2f061e065ab43cc0b73595b619639a92952aeeba;hp=1823892b64c5f16c353eee62d936b52aa89ef11b;hpb=1c5e49e75284100b7b1fc8b4e73c8ba53fe22e89;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/user-subscriptions.ts b/server/middlewares/validators/user-subscriptions.ts index 1823892b6..d01043c17 100644 --- a/server/middlewares/validators/user-subscriptions.ts +++ b/server/middlewares/validators/user-subscriptions.ts @@ -1,19 +1,18 @@ -import * as express from 'express' +import { arrayify } from '@shared/core-utils' +import express from 'express' import { body, param, query } from 'express-validator' -import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' +import { HttpStatusCode } from '../../../shared/models/http/http-error-codes' import { areValidActorHandles, isValidActorHandle } from '../../helpers/custom-validators/activitypub/actor' -import { toArray } from '../../helpers/custom-validators/misc' -import { logger } from '../../helpers/logger' import { WEBSERVER } from '../../initializers/constants' import { ActorFollowModel } from '../../models/actor/actor-follow' -import { areValidationErrors } from './utils' +import { areValidationErrors } from './shared' const userSubscriptionListValidator = [ - query('search').optional().not().isEmpty().withMessage('Should have a valid search'), + query('search') + .optional() + .not().isEmpty(), (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking userSubscriptionListValidator parameters', { parameters: req.query }) - if (areValidationErrors(req, res)) return return next() @@ -21,11 +20,10 @@ const userSubscriptionListValidator = [ ] const userSubscriptionAddValidator = [ - body('uri').custom(isValidActorHandle).withMessage('Should have a valid URI to follow (username@domain)'), + body('uri') + .custom(isValidActorHandle).withMessage('Should have a valid URI to follow (username@domain)'), (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking userSubscriptionAddValidator parameters', { parameters: req.body }) - if (areValidationErrors(req, res)) return return next() @@ -34,12 +32,10 @@ const userSubscriptionAddValidator = [ const areSubscriptionsExistValidator = [ query('uris') - .customSanitizer(toArray) - .custom(areValidActorHandles).withMessage('Should have a valid uri array'), + .customSanitizer(arrayify) + .custom(areValidActorHandles).withMessage('Should have a valid array of URIs'), (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking areSubscriptionsExistValidator parameters', { parameters: req.query }) - if (areValidationErrors(req, res)) return return next() @@ -47,25 +43,28 @@ const areSubscriptionsExistValidator = [ ] const userSubscriptionGetValidator = [ - param('uri').custom(isValidActorHandle).withMessage('Should have a valid URI to unfollow'), + param('uri') + .custom(isValidActorHandle), async (req: express.Request, res: express.Response, next: express.NextFunction) => { - logger.debug('Checking userSubscriptionGetValidator parameters', { parameters: req.params }) - if (areValidationErrors(req, res)) return let [ name, host ] = req.params.uri.split('@') if (host === WEBSERVER.HOST) host = null const user = res.locals.oauth.token.User - const subscription = await ActorFollowModel.loadByActorAndTargetNameAndHostForAPI(user.Account.Actor.id, name, host) + const subscription = await ActorFollowModel.loadByActorAndTargetNameAndHostForAPI({ + actorId: user.Account.Actor.id, + targetName: name, + targetHost: host, + state: 'accepted' + }) if (!subscription || !subscription.ActorFollowing.VideoChannel) { - return res - .status(HttpStatusCode.NOT_FOUND_404) - .json({ - error: `Subscription ${req.params.uri} not found.` - }) + return res.fail({ + status: HttpStatusCode.NOT_FOUND_404, + message: `Subscription ${req.params.uri} not found.` + }) } res.locals.subscription = subscription