import { VideoChannelModel } from '../models/video/video-channel'
import { extname, join } from 'path'
import { retryTransactionWrapper } from '../helpers/database-utils'
+import * as uuidv4 from 'uuid/v4'
async function updateActorAvatarFile (avatarPhysicalFile: Express.Multer.File, accountOrChannel: AccountModel | VideoChannelModel) {
const extension = extname(avatarPhysicalFile.filename)
- const avatarName = accountOrChannel.Actor.uuid + extension
+ const avatarName = uuidv4() + extension
const destination = join(CONFIG.STORAGE.AVATARS_DIR, avatarName)
await processImage(avatarPhysicalFile, destination, AVATARS_SIZE)
@AfterDestroy
static removeFilesAndSendDelete (instance: AvatarModel) {
logger.info('Removing avatar file %s.', instance.filename)
- return instance.removeAvatar()
+
+ // Don't block the transaction
+ instance.removeAvatar()
+ .catch(err => logger.error('Cannot remove avatar file %s.', instance.filename, err))
}
toFormattedJSON (): Avatar {