- actorInstance = await ActorModel.loadByUrl(accountAttributesToUpdate.id, t)
- if (!actorInstance) throw new Error('Actor ' + accountAttributesToUpdate.id + ' not found.')
-
- actorFieldsSave = actorInstance.toJSON()
- accountInstance = actorInstance.Account
- accountFieldsSave = actorInstance.Account.toJSON()
-
- const followersCount = await fetchActorTotalItems(accountAttributesToUpdate.followers)
- const followingCount = await fetchActorTotalItems(accountAttributesToUpdate.following)
-
- actorInstance.set('type', accountAttributesToUpdate.type)
- actorInstance.set('uuid', accountAttributesToUpdate.uuid)
- actorInstance.set('preferredUsername', accountAttributesToUpdate.preferredUsername)
- actorInstance.set('url', accountAttributesToUpdate.id)
- actorInstance.set('publicKey', accountAttributesToUpdate.publicKey.publicKeyPem)
- actorInstance.set('followersCount', followersCount)
- actorInstance.set('followingCount', followingCount)
- actorInstance.set('inboxUrl', accountAttributesToUpdate.inbox)
- actorInstance.set('outboxUrl', accountAttributesToUpdate.outbox)
- actorInstance.set('sharedInboxUrl', accountAttributesToUpdate.endpoints.sharedInbox)
- actorInstance.set('followersUrl', accountAttributesToUpdate.followers)
- actorInstance.set('followingUrl', accountAttributesToUpdate.following)
-
- if (avatarName !== undefined) {
- if (actorInstance.avatarId) {
- await actorInstance.Avatar.destroy({ transaction: t })
- }
-
- const avatar = await AvatarModel.create({
- filename: avatarName
- }, { transaction: t })
-
- actor.set('avatarId', avatar.id)
+ actorFieldsSave = actor.toJSON()
+
+ if (actorAttributesToUpdate.type === 'Group') accountOrChannelInstance = actor.VideoChannel
+ else accountOrChannelInstance = actor.Account
+
+ accountOrChannelFieldsSave = accountOrChannelInstance.toJSON()
+
+ await updateActorInstance(actor, actorAttributesToUpdate)
+
+ if (avatarInfo !== undefined) {
+ const avatarOptions = Object.assign({}, avatarInfo, { onDisk: false })
+
+ await updateActorAvatarInstance(actor, avatarOptions, t)