import { AccountModel } from '../../../models/account/account'
import { ActorModel } from '../../../models/activitypub/actor'
import { VideoChannelModel } from '../../../models/video/video-channel'
-import { getAvatarInfoIfExists, updateActorAvatarInstance, updateActorInstance } from '../actor'
+import { getImageInfoIfExists, updateActorImageInstance, updateActorInstance } from '../actor'
import { getOrCreateVideoAndAccountAndChannel, getOrCreateVideoChannelFromVideoObject, updateVideoFromAP } from '../videos'
import { sanitizeAndCheckVideoTorrentObject } from '../../../helpers/custom-validators/activitypub/videos'
import { isCacheFileObjectValid } from '../../../helpers/custom-validators/activitypub/cache-file'
import { APProcessorOptions } from '../../../types/activitypub-processor.model'
import { MActorSignature, MAccountIdActor } from '../../../types/models'
import { isRedundancyAccepted } from '@server/lib/redundancy'
+import { ActorImageType } from '@shared/models'
async function processUpdateActivity (options: APProcessorOptions<ActivityUpdate>) {
const { activity, byActor } = options
let accountOrChannelFieldsSave: object
// Fetch icon?
- const avatarInfo = await getAvatarInfoIfExists(actorAttributesToUpdate)
+ const avatarInfo = getImageInfoIfExists(actorAttributesToUpdate, ActorImageType.AVATAR)
+ const bannerInfo = getImageInfoIfExists(actorAttributesToUpdate, ActorImageType.BANNER)
try {
await sequelizeTypescript.transaction(async t => {
await updateActorInstance(actor, actorAttributesToUpdate)
- if (avatarInfo !== undefined) {
- const avatarOptions = Object.assign({}, avatarInfo, { onDisk: false })
+ for (const imageInfo of [ avatarInfo, bannerInfo ]) {
+ if (!imageInfo) continue
- await updateActorAvatarInstance(actor, avatarOptions, t)
+ const imageOptions = Object.assign({}, imageInfo, { onDisk: false })
+
+ await updateActorImageInstance(actor, imageOptions, t)
}
await actor.save({ transaction: t })