Feature/description support fields length 1000 (#1267)
* fix migrations to not use config constant values as it can introduce bugs later when they change; (fixes #1259) remove constant fields imports from migrations * add migrations to update description and support fields to 1000 (fixes #1258) * fix client/server account and video_channel description/support fields to be max len 1000 (fixes #1258); fix test Should fail with a too long description; fix test Should fail with a long description; fix test Should fail with a long description; Remove USER.SUPPORT from constants since that field no longer exists; null not false, in migrations/0280-description-support.ts; video support field 1000, oops; * rename migration 0280-description-support.ts -> 0285-description-support.ts; update video support maxlength text
This commit is contained in:
parent
e0628695c3
commit
d23e6a1c97
|
@ -101,11 +101,11 @@ export class UserValidatorsService {
|
||||||
this.USER_DESCRIPTION = {
|
this.USER_DESCRIPTION = {
|
||||||
VALIDATORS: [
|
VALIDATORS: [
|
||||||
Validators.minLength(3),
|
Validators.minLength(3),
|
||||||
Validators.maxLength(250)
|
Validators.maxLength(1000)
|
||||||
],
|
],
|
||||||
MESSAGES: {
|
MESSAGES: {
|
||||||
'minlength': this.i18n('Description must be at least 3 characters long.'),
|
'minlength': this.i18n('Description must be at least 3 characters long.'),
|
||||||
'maxlength': this.i18n('Description cannot be more than 250 characters long.')
|
'maxlength': this.i18n('Description cannot be more than 1000 characters long.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,22 +42,22 @@ export class VideoChannelValidatorsService {
|
||||||
this.VIDEO_CHANNEL_DESCRIPTION = {
|
this.VIDEO_CHANNEL_DESCRIPTION = {
|
||||||
VALIDATORS: [
|
VALIDATORS: [
|
||||||
Validators.minLength(3),
|
Validators.minLength(3),
|
||||||
Validators.maxLength(500)
|
Validators.maxLength(1000)
|
||||||
],
|
],
|
||||||
MESSAGES: {
|
MESSAGES: {
|
||||||
'minlength': i18n('Description must be at least 3 characters long.'),
|
'minlength': i18n('Description must be at least 3 characters long.'),
|
||||||
'maxlength': i18n('Description cannot be more than 500 characters long.')
|
'maxlength': i18n('Description cannot be more than 1000 characters long.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.VIDEO_CHANNEL_SUPPORT = {
|
this.VIDEO_CHANNEL_SUPPORT = {
|
||||||
VALIDATORS: [
|
VALIDATORS: [
|
||||||
Validators.minLength(3),
|
Validators.minLength(3),
|
||||||
Validators.maxLength(500)
|
Validators.maxLength(1000)
|
||||||
],
|
],
|
||||||
MESSAGES: {
|
MESSAGES: {
|
||||||
'minlength': i18n('Support text must be at least 3 characters long.'),
|
'minlength': i18n('Support text must be at least 3 characters long.'),
|
||||||
'maxlength': i18n('Support text cannot be more than 500 characters long.')
|
'maxlength': i18n('Support text cannot be more than 1000 characters long.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,10 +79,10 @@ export class VideoValidatorsService {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.VIDEO_SUPPORT = {
|
this.VIDEO_SUPPORT = {
|
||||||
VALIDATORS: [ Validators.minLength(3), Validators.maxLength(500) ],
|
VALIDATORS: [ Validators.minLength(3), Validators.maxLength(1000) ],
|
||||||
MESSAGES: {
|
MESSAGES: {
|
||||||
'minlength': this.i18n('Video support must be at least 3 characters long.'),
|
'minlength': this.i18n('Video support must be at least 3 characters long.'),
|
||||||
'maxlength': this.i18n('Video support cannot be more than 500 characters long.')
|
'maxlength': this.i18n('Video support cannot be more than 1000 characters long.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ let config: IConfig = require('config')
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
const LAST_MIGRATION_VERSION = 280
|
const LAST_MIGRATION_VERSION = 285
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -295,7 +295,7 @@ const CONFIG = {
|
||||||
const CONSTRAINTS_FIELDS = {
|
const CONSTRAINTS_FIELDS = {
|
||||||
USERS: {
|
USERS: {
|
||||||
NAME: { min: 3, max: 120 }, // Length
|
NAME: { min: 3, max: 120 }, // Length
|
||||||
DESCRIPTION: { min: 3, max: 250 }, // Length
|
DESCRIPTION: { min: 3, max: 1000 }, // Length
|
||||||
USERNAME: { min: 3, max: 20 }, // Length
|
USERNAME: { min: 3, max: 20 }, // Length
|
||||||
PASSWORD: { min: 6, max: 255 }, // Length
|
PASSWORD: { min: 6, max: 255 }, // Length
|
||||||
VIDEO_QUOTA: { min: -1 },
|
VIDEO_QUOTA: { min: -1 },
|
||||||
|
@ -311,8 +311,8 @@ const CONSTRAINTS_FIELDS = {
|
||||||
},
|
},
|
||||||
VIDEO_CHANNELS: {
|
VIDEO_CHANNELS: {
|
||||||
NAME: { min: 3, max: 120 }, // Length
|
NAME: { min: 3, max: 120 }, // Length
|
||||||
DESCRIPTION: { min: 3, max: 500 }, // Length
|
DESCRIPTION: { min: 3, max: 1000 }, // Length
|
||||||
SUPPORT: { min: 3, max: 500 }, // Length
|
SUPPORT: { min: 3, max: 1000 }, // Length
|
||||||
URL: { min: 3, max: 2000 } // Length
|
URL: { min: 3, max: 2000 } // Length
|
||||||
},
|
},
|
||||||
VIDEO_CAPTIONS: {
|
VIDEO_CAPTIONS: {
|
||||||
|
@ -341,7 +341,7 @@ const CONSTRAINTS_FIELDS = {
|
||||||
LANGUAGE: { min: 1, max: 10 }, // Length
|
LANGUAGE: { min: 1, max: 10 }, // Length
|
||||||
TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length
|
TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length
|
||||||
DESCRIPTION: { min: 3, max: 10000 }, // Length
|
DESCRIPTION: { min: 3, max: 10000 }, // Length
|
||||||
SUPPORT: { min: 3, max: 500 }, // Length
|
SUPPORT: { min: 3, max: 1000 }, // Length
|
||||||
IMAGE: {
|
IMAGE: {
|
||||||
EXTNAME: [ '.jpg', '.jpeg' ],
|
EXTNAME: [ '.jpg', '.jpeg' ],
|
||||||
FILE_SIZE: {
|
FILE_SIZE: {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../constants'
|
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
transaction: Sequelize.Transaction,
|
transaction: Sequelize.Transaction,
|
||||||
|
@ -28,7 +27,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max),
|
type: Sequelize.STRING(10000),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../index'
|
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
transaction: Sequelize.Transaction,
|
transaction: Sequelize.Transaction,
|
||||||
|
@ -8,7 +7,7 @@ async function up (utils: {
|
||||||
}): Promise<void> {
|
}): Promise<void> {
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.SUPPORT.max),
|
type: Sequelize.STRING(500),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
@ -17,7 +16,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_CHANNELS.SUPPORT.max),
|
type: Sequelize.STRING(500),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
@ -26,7 +25,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.DESCRIPTION.max),
|
type: Sequelize.STRING(250),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
@ -35,7 +34,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max),
|
type: Sequelize.STRING(10000),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../constants'
|
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
transaction: Sequelize.Transaction
|
transaction: Sequelize.Transaction
|
||||||
|
@ -31,7 +30,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.BLOCKED_REASON.max),
|
type: Sequelize.STRING(250),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../constants'
|
|
||||||
import { VideoAbuseState } from '../../../shared/models/videos'
|
import { VideoAbuseState } from '../../../shared/models/videos'
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
|
@ -32,7 +31,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_ABUSES.MODERATION_COMMENT.max),
|
type: Sequelize.STRING(300),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../constants'
|
|
||||||
import { VideoAbuseState } from '../../../shared/models/videos'
|
import { VideoAbuseState } from '../../../shared/models/videos'
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
|
@ -10,7 +9,7 @@ async function up (utils: {
|
||||||
|
|
||||||
{
|
{
|
||||||
const data = {
|
const data = {
|
||||||
type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_BLACKLIST.REASON.max),
|
type: Sequelize.STRING(300),
|
||||||
allowNull: true,
|
allowNull: true,
|
||||||
defaultValue: null
|
defaultValue: null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import * as Sequelize from 'sequelize'
|
import * as Sequelize from 'sequelize'
|
||||||
import { CONSTRAINTS_FIELDS } from '../constants'
|
|
||||||
|
|
||||||
async function up (utils: {
|
async function up (utils: {
|
||||||
transaction: Sequelize.Transaction
|
transaction: Sequelize.Transaction
|
||||||
|
|
53
server/initializers/migrations/0285-description-support.ts
Normal file
53
server/initializers/migrations/0285-description-support.ts
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
import * as Sequelize from 'sequelize'
|
||||||
|
|
||||||
|
async function up (utils: {
|
||||||
|
transaction: Sequelize.Transaction,
|
||||||
|
queryInterface: Sequelize.QueryInterface,
|
||||||
|
sequelize: Sequelize.Sequelize,
|
||||||
|
db: any
|
||||||
|
}): Promise<void> {
|
||||||
|
{
|
||||||
|
const data = {
|
||||||
|
type: Sequelize.STRING(1000),
|
||||||
|
allowNull: true,
|
||||||
|
defaultValue: null
|
||||||
|
}
|
||||||
|
await utils.queryInterface.changeColumn('video', 'support', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const data = {
|
||||||
|
type: Sequelize.STRING(1000),
|
||||||
|
allowNull: true,
|
||||||
|
defaultValue: null
|
||||||
|
}
|
||||||
|
await utils.queryInterface.changeColumn('videoChannel', 'support', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const data = {
|
||||||
|
type: Sequelize.STRING(1000),
|
||||||
|
allowNull: true,
|
||||||
|
defaultValue: null
|
||||||
|
}
|
||||||
|
await utils.queryInterface.changeColumn('videoChannel', 'description', data)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
const data = {
|
||||||
|
type: Sequelize.STRING(1000),
|
||||||
|
allowNull: true,
|
||||||
|
defaultValue: null
|
||||||
|
}
|
||||||
|
await utils.queryInterface.changeColumn('account', 'description', data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function down (options) {
|
||||||
|
throw new Error('Not implemented.')
|
||||||
|
}
|
||||||
|
|
||||||
|
export {
|
||||||
|
up,
|
||||||
|
down
|
||||||
|
}
|
|
@ -315,7 +315,7 @@ describe('Test users API validators', function () {
|
||||||
|
|
||||||
it('Should fail with a too long description', async function () {
|
it('Should fail with a too long description', async function () {
|
||||||
const fields = {
|
const fields = {
|
||||||
description: 'super'.repeat(60)
|
description: 'super'.repeat(201)
|
||||||
}
|
}
|
||||||
|
|
||||||
await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields })
|
await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields })
|
||||||
|
|
|
@ -118,12 +118,12 @@ describe('Test video channels API validator', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long description', async function () {
|
it('Should fail with a long description', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) })
|
||||||
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
|
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long support text', async function () {
|
it('Should fail with a long support text', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
|
||||||
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
|
await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -185,12 +185,12 @@ describe('Test video channels API validator', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long description', async function () {
|
it('Should fail with a long description', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) })
|
||||||
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long support text', async function () {
|
it('Should fail with a long support text', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
|
||||||
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ describe('Test video imports API validator', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long support text', async function () {
|
it('Should fail with a long support text', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
|
||||||
|
|
||||||
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
|
@ -233,7 +233,7 @@ describe('Test videos API validator', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long support text', async function () {
|
it('Should fail with a long support text', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
|
||||||
const attaches = baseCorrectAttaches
|
const attaches = baseCorrectAttaches
|
||||||
|
|
||||||
await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
|
await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches })
|
||||||
|
@ -482,7 +482,7 @@ describe('Test videos API validator', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should fail with a long support text', async function () {
|
it('Should fail with a long support text', async function () {
|
||||||
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) })
|
const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) })
|
||||||
|
|
||||||
await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields })
|
await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields })
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user