1 import { join } from 'path'
2 import { AfterDestroy, AllowNull, Column, CreatedAt, Model, Table, UpdatedAt } from 'sequelize-typescript'
3 import { Avatar } from '../../../shared/models/avatars/avatar.model'
4 import { CONFIG, STATIC_PATHS } from '../../initializers'
5 import { logger } from '../../helpers/logger'
6 import { remove } from 'fs-extra'
11 export class AvatarModel extends Model<AvatarModel> {
24 static removeFilesAndSendDelete (instance: AvatarModel) {
25 logger.info('Removing avatar file %s.', instance.filename)
27 // Don't block the transaction
28 instance.removeAvatar()
29 .catch(err => logger.error('Cannot remove avatar file %s.', instance.filename, err))
32 toFormattedJSON (): Avatar {
34 path: this.getWebserverPath(),
35 createdAt: this.createdAt,
36 updatedAt: this.updatedAt
41 return join(STATIC_PATHS.AVATARS, this.filename)
45 const avatarPath = join(CONFIG.STORAGE.AVATARS_DIR, this.filename)
46 return remove(avatarPath)