diff options
author | Julien Le Bras <julien.lb.pro@gmail.com> | 2018-03-28 23:38:52 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2018-03-30 08:52:58 +0200 |
commit | 2922e048de95738b3319054ce0778f873a34a0ee (patch) | |
tree | ee35b2e8bf9e1967b7d08974d6680697b2965472 /server/initializers | |
parent | 2920281946cffd62ce5046b661d63f9867ab0654 (diff) | |
download | PeerTube-2922e048de95738b3319054ce0778f873a34a0ee.tar.gz PeerTube-2922e048de95738b3319054ce0778f873a34a0ee.tar.zst PeerTube-2922e048de95738b3319054ce0778f873a34a0ee.zip |
Add publishedAt field for video model.
* New field added in the `video` table + migration script
* `publishedAt` updated to NOW when privacy changes from private to
public/unlisted (default = NOW)
* Models updated to handle the new attribute
* Client interface updated to use `publishedAt` instead of `createdAt`
except in My Account > My Videos view
Diffstat (limited to 'server/initializers')
-rw-r--r-- | server/initializers/constants.ts | 2 | ||||
-rw-r--r-- | server/initializers/migrations/0200-video-published-at.ts | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 5152095b3..2622b2c71 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts | |||
@@ -12,7 +12,7 @@ let config: IConfig = require('config') | |||
12 | 12 | ||
13 | // --------------------------------------------------------------------------- | 13 | // --------------------------------------------------------------------------- |
14 | 14 | ||
15 | const LAST_MIGRATION_VERSION = 195 | 15 | const LAST_MIGRATION_VERSION = 200 |
16 | 16 | ||
17 | // --------------------------------------------------------------------------- | 17 | // --------------------------------------------------------------------------- |
18 | 18 | ||
diff --git a/server/initializers/migrations/0200-video-published-at.ts b/server/initializers/migrations/0200-video-published-at.ts new file mode 100644 index 000000000..edaf4a145 --- /dev/null +++ b/server/initializers/migrations/0200-video-published-at.ts | |||
@@ -0,0 +1,32 @@ | |||
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 | }): Promise<void> { | ||
8 | |||
9 | { | ||
10 | const data = { | ||
11 | type: Sequelize.DATE, | ||
12 | allowNull: false, | ||
13 | defaultValue: Sequelize.NOW | ||
14 | } | ||
15 | await utils.queryInterface.addColumn('video', 'publishedAt', data) | ||
16 | } | ||
17 | |||
18 | { | ||
19 | const query = 'UPDATE video SET "publishedAt" = video."createdAt"' | ||
20 | await utils.sequelize.query(query) | ||
21 | } | ||
22 | |||
23 | } | ||
24 | |||
25 | function down (options) { | ||
26 | throw new Error('Not implemented.') | ||
27 | } | ||
28 | |||
29 | export { | ||
30 | up, | ||
31 | down | ||
32 | } | ||