diff options
author | BRAINS YUM <43896676+McFlat@users.noreply.github.com> | 2018-10-19 01:54:01 -0500 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2018-10-19 08:54:01 +0200 |
commit | d23e6a1c97a6ae3ca8d340a8c9adad268a5be57e (patch) | |
tree | e5a11500d446b585716d451dd274e8567d36cd2a /server | |
parent | e0628695c3425bf69b5d7a46b24dcdf31892d9b6 (diff) | |
download | PeerTube-d23e6a1c97a6ae3ca8d340a8c9adad268a5be57e.tar.gz PeerTube-d23e6a1c97a6ae3ca8d340a8c9adad268a5be57e.tar.zst PeerTube-d23e6a1c97a6ae3ca8d340a8c9adad268a5be57e.zip |
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
Diffstat (limited to 'server')
-rw-r--r-- | server/initializers/constants.ts | 10 | ||||
-rw-r--r-- | server/initializers/migrations/0120-video-null.ts | 3 | ||||
-rw-r--r-- | server/initializers/migrations/0195-support.ts | 9 | ||||
-rw-r--r-- | server/initializers/migrations/0245-user-blocked.ts | 3 | ||||
-rw-r--r-- | server/initializers/migrations/0250-video-abuse-state.ts | 3 | ||||
-rw-r--r-- | server/initializers/migrations/0255-video-blacklist-reason.ts | 3 | ||||
-rw-r--r-- | server/initializers/migrations/0260-upload-quota-daily.ts | 1 | ||||
-rw-r--r-- | server/initializers/migrations/0285-description-support.ts | 53 | ||||
-rw-r--r-- | server/tests/api/check-params/users.ts | 2 | ||||
-rw-r--r-- | server/tests/api/check-params/video-channels.ts | 8 | ||||
-rw-r--r-- | server/tests/api/check-params/video-imports.ts | 2 | ||||
-rw-r--r-- | server/tests/api/check-params/videos.ts | 4 |
12 files changed, 74 insertions, 27 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 03158e356..e8843a3ab 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts | |||
@@ -16,7 +16,7 @@ let config: IConfig = require('config') | |||
16 | 16 | ||
17 | // --------------------------------------------------------------------------- | 17 | // --------------------------------------------------------------------------- |
18 | 18 | ||
19 | const LAST_MIGRATION_VERSION = 280 | 19 | const LAST_MIGRATION_VERSION = 285 |
20 | 20 | ||
21 | // --------------------------------------------------------------------------- | 21 | // --------------------------------------------------------------------------- |
22 | 22 | ||
@@ -295,7 +295,7 @@ const CONFIG = { | |||
295 | const CONSTRAINTS_FIELDS = { | 295 | const CONSTRAINTS_FIELDS = { |
296 | USERS: { | 296 | USERS: { |
297 | NAME: { min: 3, max: 120 }, // Length | 297 | NAME: { min: 3, max: 120 }, // Length |
298 | DESCRIPTION: { min: 3, max: 250 }, // Length | 298 | DESCRIPTION: { min: 3, max: 1000 }, // Length |
299 | USERNAME: { min: 3, max: 20 }, // Length | 299 | USERNAME: { min: 3, max: 20 }, // Length |
300 | PASSWORD: { min: 6, max: 255 }, // Length | 300 | PASSWORD: { min: 6, max: 255 }, // Length |
301 | VIDEO_QUOTA: { min: -1 }, | 301 | VIDEO_QUOTA: { min: -1 }, |
@@ -311,8 +311,8 @@ const CONSTRAINTS_FIELDS = { | |||
311 | }, | 311 | }, |
312 | VIDEO_CHANNELS: { | 312 | VIDEO_CHANNELS: { |
313 | NAME: { min: 3, max: 120 }, // Length | 313 | NAME: { min: 3, max: 120 }, // Length |
314 | DESCRIPTION: { min: 3, max: 500 }, // Length | 314 | DESCRIPTION: { min: 3, max: 1000 }, // Length |
315 | SUPPORT: { min: 3, max: 500 }, // Length | 315 | SUPPORT: { min: 3, max: 1000 }, // Length |
316 | URL: { min: 3, max: 2000 } // Length | 316 | URL: { min: 3, max: 2000 } // Length |
317 | }, | 317 | }, |
318 | VIDEO_CAPTIONS: { | 318 | VIDEO_CAPTIONS: { |
@@ -341,7 +341,7 @@ const CONSTRAINTS_FIELDS = { | |||
341 | LANGUAGE: { min: 1, max: 10 }, // Length | 341 | LANGUAGE: { min: 1, max: 10 }, // Length |
342 | TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length | 342 | TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length |
343 | DESCRIPTION: { min: 3, max: 10000 }, // Length | 343 | DESCRIPTION: { min: 3, max: 10000 }, // Length |
344 | SUPPORT: { min: 3, max: 500 }, // Length | 344 | SUPPORT: { min: 3, max: 1000 }, // Length |
345 | IMAGE: { | 345 | IMAGE: { |
346 | EXTNAME: [ '.jpg', '.jpeg' ], | 346 | EXTNAME: [ '.jpg', '.jpeg' ], |
347 | FILE_SIZE: { | 347 | FILE_SIZE: { |
diff --git a/server/initializers/migrations/0120-video-null.ts b/server/initializers/migrations/0120-video-null.ts index 63f3984dd..6d253f04f 100644 --- a/server/initializers/migrations/0120-video-null.ts +++ b/server/initializers/migrations/0120-video-null.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../constants' | ||
3 | 2 | ||
4 | async function up (utils: { | 3 | async function up (utils: { |
5 | transaction: Sequelize.Transaction, | 4 | transaction: Sequelize.Transaction, |
@@ -28,7 +27,7 @@ async function up (utils: { | |||
28 | 27 | ||
29 | { | 28 | { |
30 | const data = { | 29 | const data = { |
31 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max), | 30 | type: Sequelize.STRING(10000), |
32 | allowNull: true, | 31 | allowNull: true, |
33 | defaultValue: null | 32 | defaultValue: null |
34 | } | 33 | } |
diff --git a/server/initializers/migrations/0195-support.ts b/server/initializers/migrations/0195-support.ts index 8722a5f22..3b9eabe79 100644 --- a/server/initializers/migrations/0195-support.ts +++ b/server/initializers/migrations/0195-support.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../index' | ||
3 | 2 | ||
4 | async function up (utils: { | 3 | async function up (utils: { |
5 | transaction: Sequelize.Transaction, | 4 | transaction: Sequelize.Transaction, |
@@ -8,7 +7,7 @@ async function up (utils: { | |||
8 | }): Promise<void> { | 7 | }): Promise<void> { |
9 | { | 8 | { |
10 | const data = { | 9 | const data = { |
11 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.SUPPORT.max), | 10 | type: Sequelize.STRING(500), |
12 | allowNull: true, | 11 | allowNull: true, |
13 | defaultValue: null | 12 | defaultValue: null |
14 | } | 13 | } |
@@ -17,7 +16,7 @@ async function up (utils: { | |||
17 | 16 | ||
18 | { | 17 | { |
19 | const data = { | 18 | const data = { |
20 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_CHANNELS.SUPPORT.max), | 19 | type: Sequelize.STRING(500), |
21 | allowNull: true, | 20 | allowNull: true, |
22 | defaultValue: null | 21 | defaultValue: null |
23 | } | 22 | } |
@@ -26,7 +25,7 @@ async function up (utils: { | |||
26 | 25 | ||
27 | { | 26 | { |
28 | const data = { | 27 | const data = { |
29 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.DESCRIPTION.max), | 28 | type: Sequelize.STRING(250), |
30 | allowNull: true, | 29 | allowNull: true, |
31 | defaultValue: null | 30 | defaultValue: null |
32 | } | 31 | } |
@@ -35,7 +34,7 @@ async function up (utils: { | |||
35 | 34 | ||
36 | { | 35 | { |
37 | const data = { | 36 | const data = { |
38 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max), | 37 | type: Sequelize.STRING(10000), |
39 | allowNull: true, | 38 | allowNull: true, |
40 | defaultValue: null | 39 | defaultValue: null |
41 | } | 40 | } |
diff --git a/server/initializers/migrations/0245-user-blocked.ts b/server/initializers/migrations/0245-user-blocked.ts index 5a04ecd2b..19c7d5b9c 100644 --- a/server/initializers/migrations/0245-user-blocked.ts +++ b/server/initializers/migrations/0245-user-blocked.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../constants' | ||
3 | 2 | ||
4 | async function up (utils: { | 3 | async function up (utils: { |
5 | transaction: Sequelize.Transaction | 4 | transaction: Sequelize.Transaction |
@@ -31,7 +30,7 @@ async function up (utils: { | |||
31 | 30 | ||
32 | { | 31 | { |
33 | const data = { | 32 | const data = { |
34 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.USERS.BLOCKED_REASON.max), | 33 | type: Sequelize.STRING(250), |
35 | allowNull: true, | 34 | allowNull: true, |
36 | defaultValue: null | 35 | defaultValue: null |
37 | } | 36 | } |
diff --git a/server/initializers/migrations/0250-video-abuse-state.ts b/server/initializers/migrations/0250-video-abuse-state.ts index acb668ae1..50de25182 100644 --- a/server/initializers/migrations/0250-video-abuse-state.ts +++ b/server/initializers/migrations/0250-video-abuse-state.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../constants' | ||
3 | import { VideoAbuseState } from '../../../shared/models/videos' | 2 | import { VideoAbuseState } from '../../../shared/models/videos' |
4 | 3 | ||
5 | async function up (utils: { | 4 | async function up (utils: { |
@@ -32,7 +31,7 @@ async function up (utils: { | |||
32 | 31 | ||
33 | { | 32 | { |
34 | const data = { | 33 | const data = { |
35 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_ABUSES.MODERATION_COMMENT.max), | 34 | type: Sequelize.STRING(300), |
36 | allowNull: true, | 35 | allowNull: true, |
37 | defaultValue: null | 36 | defaultValue: null |
38 | } | 37 | } |
diff --git a/server/initializers/migrations/0255-video-blacklist-reason.ts b/server/initializers/migrations/0255-video-blacklist-reason.ts index a380e620e..69d6efb9e 100644 --- a/server/initializers/migrations/0255-video-blacklist-reason.ts +++ b/server/initializers/migrations/0255-video-blacklist-reason.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../constants' | ||
3 | import { VideoAbuseState } from '../../../shared/models/videos' | 2 | import { VideoAbuseState } from '../../../shared/models/videos' |
4 | 3 | ||
5 | async function up (utils: { | 4 | async function up (utils: { |
@@ -10,7 +9,7 @@ async function up (utils: { | |||
10 | 9 | ||
11 | { | 10 | { |
12 | const data = { | 11 | const data = { |
13 | type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEO_BLACKLIST.REASON.max), | 12 | type: Sequelize.STRING(300), |
14 | allowNull: true, | 13 | allowNull: true, |
15 | defaultValue: null | 14 | defaultValue: null |
16 | } | 15 | } |
diff --git a/server/initializers/migrations/0260-upload-quota-daily.ts b/server/initializers/migrations/0260-upload-quota-daily.ts index d25154ba6..cbbe391ef 100644 --- a/server/initializers/migrations/0260-upload-quota-daily.ts +++ b/server/initializers/migrations/0260-upload-quota-daily.ts | |||
@@ -1,5 +1,4 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | import { CONSTRAINTS_FIELDS } from '../constants' | ||
3 | 2 | ||
4 | async function up (utils: { | 3 | async function up (utils: { |
5 | transaction: Sequelize.Transaction | 4 | transaction: Sequelize.Transaction |
diff --git a/server/initializers/migrations/0285-description-support.ts b/server/initializers/migrations/0285-description-support.ts new file mode 100644 index 000000000..85ef4ef39 --- /dev/null +++ b/server/initializers/migrations/0285-description-support.ts | |||
@@ -0,0 +1,53 @@ | |||
1 | import * as Sequelize from 'sequelize' | ||
2 | |||
3 | async function up (utils: { | ||
4 | transaction: Sequelize.Transaction, | ||
5 | queryInterface: Sequelize.QueryInterface, | ||
6 | sequelize: Sequelize.Sequelize, | ||
7 | db: any | ||
8 | }): Promise<void> { | ||
9 | { | ||
10 | const data = { | ||
11 | type: Sequelize.STRING(1000), | ||
12 | allowNull: true, | ||
13 | defaultValue: null | ||
14 | } | ||
15 | await utils.queryInterface.changeColumn('video', 'support', data) | ||
16 | } | ||
17 | |||
18 | { | ||
19 | const data = { | ||
20 | type: Sequelize.STRING(1000), | ||
21 | allowNull: true, | ||
22 | defaultValue: null | ||
23 | } | ||
24 | await utils.queryInterface.changeColumn('videoChannel', 'support', data) | ||
25 | } | ||
26 | |||
27 | { | ||
28 | const data = { | ||
29 | type: Sequelize.STRING(1000), | ||
30 | allowNull: true, | ||
31 | defaultValue: null | ||
32 | } | ||
33 | await utils.queryInterface.changeColumn('videoChannel', 'description', data) | ||
34 | } | ||
35 | |||
36 | { | ||
37 | const data = { | ||
38 | type: Sequelize.STRING(1000), | ||
39 | allowNull: true, | ||
40 | defaultValue: null | ||
41 | } | ||
42 | await utils.queryInterface.changeColumn('account', 'description', data) | ||
43 | } | ||
44 | } | ||
45 | |||
46 | function down (options) { | ||
47 | throw new Error('Not implemented.') | ||
48 | } | ||
49 | |||
50 | export { | ||
51 | up, | ||
52 | down | ||
53 | } | ||
diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts index cbfa0c137..ec46609a4 100644 --- a/server/tests/api/check-params/users.ts +++ b/server/tests/api/check-params/users.ts | |||
@@ -315,7 +315,7 @@ describe('Test users API validators', function () { | |||
315 | 315 | ||
316 | it('Should fail with a too long description', async function () { | 316 | it('Should fail with a too long description', async function () { |
317 | const fields = { | 317 | const fields = { |
318 | description: 'super'.repeat(60) | 318 | description: 'super'.repeat(201) |
319 | } | 319 | } |
320 | 320 | ||
321 | await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields }) | 321 | await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields }) |
diff --git a/server/tests/api/check-params/video-channels.ts b/server/tests/api/check-params/video-channels.ts index 3a7942945..e5696224d 100644 --- a/server/tests/api/check-params/video-channels.ts +++ b/server/tests/api/check-params/video-channels.ts | |||
@@ -118,12 +118,12 @@ describe('Test video channels API validator', function () { | |||
118 | }) | 118 | }) |
119 | 119 | ||
120 | it('Should fail with a long description', async function () { | 120 | it('Should fail with a long description', async function () { |
121 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) }) | 121 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) }) |
122 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 122 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
123 | }) | 123 | }) |
124 | 124 | ||
125 | it('Should fail with a long support text', async function () { | 125 | it('Should fail with a long support text', async function () { |
126 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) }) | 126 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) |
127 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) | 127 | await makePostBodyRequest({ url: server.url, path: videoChannelPath, token: server.accessToken, fields }) |
128 | }) | 128 | }) |
129 | 129 | ||
@@ -185,12 +185,12 @@ describe('Test video channels API validator', function () { | |||
185 | }) | 185 | }) |
186 | 186 | ||
187 | it('Should fail with a long description', async function () { | 187 | it('Should fail with a long description', async function () { |
188 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(150) }) | 188 | const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(201) }) |
189 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 189 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
190 | }) | 190 | }) |
191 | 191 | ||
192 | it('Should fail with a long support text', async function () { | 192 | it('Should fail with a long support text', async function () { |
193 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) }) | 193 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) |
194 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 194 | await makePutBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
195 | }) | 195 | }) |
196 | 196 | ||
diff --git a/server/tests/api/check-params/video-imports.ts b/server/tests/api/check-params/video-imports.ts index 44645b0e2..b51f3d2cd 100644 --- a/server/tests/api/check-params/video-imports.ts +++ b/server/tests/api/check-params/video-imports.ts | |||
@@ -140,7 +140,7 @@ describe('Test video imports API validator', function () { | |||
140 | }) | 140 | }) |
141 | 141 | ||
142 | it('Should fail with a long support text', async function () { | 142 | it('Should fail with a long support text', async function () { |
143 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) }) | 143 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) |
144 | 144 | ||
145 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) | 145 | await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) |
146 | }) | 146 | }) |
diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts index 904d22870..699f135c7 100644 --- a/server/tests/api/check-params/videos.ts +++ b/server/tests/api/check-params/videos.ts | |||
@@ -233,7 +233,7 @@ describe('Test videos API validator', function () { | |||
233 | }) | 233 | }) |
234 | 234 | ||
235 | it('Should fail with a long support text', async function () { | 235 | it('Should fail with a long support text', async function () { |
236 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) }) | 236 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) |
237 | const attaches = baseCorrectAttaches | 237 | const attaches = baseCorrectAttaches |
238 | 238 | ||
239 | await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) | 239 | await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) |
@@ -482,7 +482,7 @@ describe('Test videos API validator', function () { | |||
482 | }) | 482 | }) |
483 | 483 | ||
484 | it('Should fail with a long support text', async function () { | 484 | it('Should fail with a long support text', async function () { |
485 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(150) }) | 485 | const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(201) }) |
486 | 486 | ||
487 | await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) | 487 | await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) |
488 | }) | 488 | }) |