From 2295ce6c4e7ba805cc100ff961527bebc2cd89e5 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 4 Dec 2017 10:34:40 +0100 Subject: Add account avatar --- server/initializers/constants.ts | 7 ++++- server/initializers/database.ts | 2 ++ .../initializers/migrations/0115-account-avatar.ts | 31 ++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 server/initializers/migrations/0115-account-avatar.ts (limited to 'server/initializers') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index e3d779456..144a4edbf 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -14,7 +14,7 @@ import { FollowState } from '../../shared/models/accounts/follow.model' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 110 +const LAST_MIGRATION_VERSION = 115 // --------------------------------------------------------------------------- @@ -60,6 +60,7 @@ const CONFIG = { PASSWORD: config.get('database.password') }, STORAGE: { + AVATARS_DIR: join(root(), config.get('storage.avatars')), LOG_DIR: join(root(), config.get('storage.logs')), VIDEOS_DIR: join(root(), config.get('storage.videos')), THUMBNAILS_DIR: join(root(), config.get('storage.thumbnails')), @@ -105,6 +106,9 @@ const CONFIG = { CONFIG.WEBSERVER.URL = CONFIG.WEBSERVER.SCHEME + '://' + CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT CONFIG.WEBSERVER.HOST = CONFIG.WEBSERVER.HOSTNAME + ':' + CONFIG.WEBSERVER.PORT +const AVATARS_DIR = { + ACCOUNT: join(CONFIG.STORAGE.AVATARS_DIR, 'account') +} // --------------------------------------------------------------------------- const CONSTRAINTS_FIELDS = { @@ -356,6 +360,7 @@ export { PREVIEWS_SIZE, REMOTE_SCHEME, FOLLOW_STATES, + AVATARS_DIR, SEARCHABLE_COLUMNS, SERVER_ACCOUNT_NAME, PRIVATE_RSA_KEY_SIZE, diff --git a/server/initializers/database.ts b/server/initializers/database.ts index 90dbba5b9..bb95992e1 100644 --- a/server/initializers/database.ts +++ b/server/initializers/database.ts @@ -2,6 +2,7 @@ import { join } from 'path' import { flattenDepth } from 'lodash' require('pg').defaults.parseInt8 = true // Avoid BIGINT to be converted to string import * as Sequelize from 'sequelize' +import { AvatarModel } from '../models/avatar' import { CONFIG } from './constants' // Do not use barrel, we need to load database first @@ -36,6 +37,7 @@ export type PeerTubeDatabase = { init?: (silent: boolean) => Promise, Application?: ApplicationModel, + Avatar?: AvatarModel, Account?: AccountModel, Job?: JobModel, OAuthClient?: OAuthClientModel, diff --git a/server/initializers/migrations/0115-account-avatar.ts b/server/initializers/migrations/0115-account-avatar.ts new file mode 100644 index 000000000..e3531f5ce --- /dev/null +++ b/server/initializers/migrations/0115-account-avatar.ts @@ -0,0 +1,31 @@ +import * as Sequelize from 'sequelize' +import { PeerTubeDatabase } from '../database' + +async function up (utils: { + transaction: Sequelize.Transaction, + queryInterface: Sequelize.QueryInterface, + sequelize: Sequelize.Sequelize, + db: PeerTubeDatabase +}): Promise { + await db.Avatar.sync() + + const data = { + type: Sequelize.INTEGER, + allowNull: true, + references: { + model: 'Avatars', + key: 'id' + }, + onDelete: 'CASCADE' + } + await utils.queryInterface.addColumn('Accounts', 'avatarId', data) +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3 From be44767854709dbf7da4ba37fe4f16ac4e297f08 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 4 Dec 2017 11:17:08 +0100 Subject: Fix lint --- server/initializers/migrations/0115-account-avatar.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'server/initializers') diff --git a/server/initializers/migrations/0115-account-avatar.ts b/server/initializers/migrations/0115-account-avatar.ts index e3531f5ce..2b947ceda 100644 --- a/server/initializers/migrations/0115-account-avatar.ts +++ b/server/initializers/migrations/0115-account-avatar.ts @@ -7,7 +7,7 @@ async function up (utils: { sequelize: Sequelize.Sequelize, db: PeerTubeDatabase }): Promise { - await db.Avatar.sync() + await utils.db.Avatar.sync() const data = { type: Sequelize.INTEGER, -- cgit v1.2.3 From f3aaa9a95cc2b61f1f255472d7014d08faa66561 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 5 Dec 2017 17:46:33 +0100 Subject: Fix client search --- server/initializers/constants.ts | 6 ------ 1 file changed, 6 deletions(-) (limited to 'server/initializers') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 144a4edbf..3e083fd92 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -24,11 +24,6 @@ const API_VERSION = 'v1' // Number of results by default for the pagination const PAGINATION_COUNT_DEFAULT = 15 -// Sortable columns per schema -const SEARCHABLE_COLUMNS = { - VIDEOS: [ 'name', 'magnetUri', 'host', 'account', 'tags' ] -} - // Sortable columns per schema const SORTABLE_COLUMNS = { USERS: [ 'id', 'username', 'createdAt' ], @@ -361,7 +356,6 @@ export { REMOTE_SCHEME, FOLLOW_STATES, AVATARS_DIR, - SEARCHABLE_COLUMNS, SERVER_ACCOUNT_NAME, PRIVATE_RSA_KEY_SIZE, SORTABLE_COLUMNS, -- cgit v1.2.3 From 8e7f08b5a5e65195ad6dd3d7850fda57021421f3 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 7 Dec 2017 17:03:56 +0100 Subject: Make some fields optional when uploading a video --- server/initializers/migrations/0120-video-null.ts | 46 +++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 server/initializers/migrations/0120-video-null.ts (limited to 'server/initializers') diff --git a/server/initializers/migrations/0120-video-null.ts b/server/initializers/migrations/0120-video-null.ts new file mode 100644 index 000000000..3506a5046 --- /dev/null +++ b/server/initializers/migrations/0120-video-null.ts @@ -0,0 +1,46 @@ +import * as Sequelize from 'sequelize' +import { PeerTubeDatabase } from '../database' + +async function up (utils: { + transaction: Sequelize.Transaction, + queryInterface: Sequelize.QueryInterface, + sequelize: Sequelize.Sequelize, + db: PeerTubeDatabase +}): Promise { + + { + const data = { + type: Sequelize.INTEGER, + allowNull: true, + defaultValue: null + } + await utils.queryInterface.changeColumn('Videos', 'licence', data) + } + + { + const data = { + type: Sequelize.INTEGER, + allowNull: true, + defaultValue: null + } + await utils.queryInterface.changeColumn('Videos', 'category', data) + } + + { + const data = { + type: Sequelize.INTEGER, + allowNull: true, + defaultValue: null + } + await utils.queryInterface.changeColumn('Videos', 'description', data) + } +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3 From baeefe22caf8ae6cb58dc40754e5db14b50168bf Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 7 Dec 2017 17:22:44 +0100 Subject: First upload step is ok --- server/initializers/constants.ts | 2 +- server/initializers/migrations/0120-video-null.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'server/initializers') diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 3e083fd92..7be7a5f95 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -14,7 +14,7 @@ import { FollowState } from '../../shared/models/accounts/follow.model' // --------------------------------------------------------------------------- -const LAST_MIGRATION_VERSION = 115 +const LAST_MIGRATION_VERSION = 120 // --------------------------------------------------------------------------- diff --git a/server/initializers/migrations/0120-video-null.ts b/server/initializers/migrations/0120-video-null.ts index 3506a5046..9130d10ee 100644 --- a/server/initializers/migrations/0120-video-null.ts +++ b/server/initializers/migrations/0120-video-null.ts @@ -1,4 +1,5 @@ import * as Sequelize from 'sequelize' +import { CONSTRAINTS_FIELDS } from '../constants' import { PeerTubeDatabase } from '../database' async function up (utils: { @@ -28,7 +29,7 @@ async function up (utils: { { const data = { - type: Sequelize.INTEGER, + type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.DESCRIPTION.max), allowNull: true, defaultValue: null } -- cgit v1.2.3