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