X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Favatar%2Favatar.ts;h=e1d4c20bccd1dd554200ad0c0e1a674e213cb0ac;hb=77540346413259e4ec62ee8302e503bcd2a01047;hp=96308fd5ffc2c1a144548d2d1e81c85b7eed045e;hpb=be44767854709dbf7da4ba37fe4f16ac4e297f08;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/avatar/avatar.ts b/server/models/avatar/avatar.ts index 96308fd5f..e1d4c20bc 100644 --- a/server/models/avatar/avatar.ts +++ b/server/models/avatar/avatar.ts @@ -1,24 +1,43 @@ -import * as Sequelize from 'sequelize' -import { addMethodsToModel } from '../utils' -import { AvatarAttributes, AvatarInstance } from './avatar-interface' - -let Avatar: Sequelize.Model - -export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) { - Avatar = sequelize.define('Avatar', - { - filename: { - type: DataTypes.STRING, - allowNull: false - } - }, - {} - ) - - const classMethods = [] - addMethodsToModel(Avatar, classMethods) - - return Avatar -} +import { join } from 'path' +import { AfterDestroy, AllowNull, Column, CreatedAt, Model, Table, UpdatedAt } from 'sequelize-typescript' +import { Avatar } from '../../../shared/models/avatars/avatar.model' +import { unlinkPromise } from '../../helpers/core-utils' +import { CONFIG, STATIC_PATHS } from '../../initializers' + +@Table({ + tableName: 'avatar' +}) +export class AvatarModel extends Model { + + @AllowNull(false) + @Column + filename: string + + @CreatedAt + createdAt: Date + + @UpdatedAt + updatedAt: Date -// ------------------------------ Statics ------------------------------ + @AfterDestroy + static removeFilesAndSendDelete (instance: AvatarModel) { + return instance.removeAvatar() + } + + toFormattedJSON (): Avatar { + return { + path: this.getWebserverPath(), + createdAt: this.createdAt, + updatedAt: this.updatedAt + } + } + + getWebserverPath () { + return join(STATIC_PATHS.AVATARS, this.filename) + } + + removeAvatar () { + const avatarPath = join(CONFIG.STORAGE.AVATARS_DIR, this.filename) + return unlinkPromise(avatarPath) + } +}