import { getServerActor } from '../../helpers/utils'
import { ACTOR_FOLLOW_SCORE, FOLLOW_STATES, SERVER_ACTOR_NAME } from '../../initializers/constants'
import { ServerModel } from '../server/server'
-import { createSafeIn, getSort } from '../utils'
+import { createSafeIn, getSort, getFollowsSort } from '../utils'
import { ActorModel, unusedActorAttributesForAPI } from './actor'
import { VideoChannelModel } from '../video/video-channel'
import { AccountModel } from '../account/account'
MActorFollowSubscriptions
} from '@server/typings/models'
import { ActivityPubActorType } from '@shared/models'
+import { afterCommitIfTransaction } from '@server/helpers/database-utils'
@Table({
tableName: 'actorFollow',
@AfterCreate
@AfterUpdate
- static incrementFollowerAndFollowingCount (instance: ActorFollowModel) {
+ static incrementFollowerAndFollowingCount (instance: ActorFollowModel, options: any) {
if (instance.state !== 'accepted') return undefined
return Promise.all([
- ActorModel.incrementFollows(instance.actorId, 'followingCount', 1),
- ActorModel.incrementFollows(instance.targetActorId, 'followersCount', 1)
+ ActorModel.rebuildFollowsCount(instance.actorId, 'following', options.transaction),
+ ActorModel.rebuildFollowsCount(instance.targetActorId, 'followers', options.transaction)
])
}
@AfterDestroy
- static decrementFollowerAndFollowingCount (instance: ActorFollowModel) {
+ static decrementFollowerAndFollowingCount (instance: ActorFollowModel, options: any) {
return Promise.all([
- ActorModel.incrementFollows(instance.actorId, 'followingCount',-1),
- ActorModel.incrementFollows(instance.targetActorId, 'followersCount', -1)
+ ActorModel.rebuildFollowsCount(instance.actorId, 'following', options.transaction),
+ ActorModel.rebuildFollowsCount(instance.targetActorId, 'followers', options.transaction)
])
}
distinct: true,
offset: start,
limit: count,
- order: getSort(sort),
+ order: getFollowsSort(sort),
where: followWhere,
include: [
{
distinct: true,
offset: start,
limit: count,
- order: getSort(sort),
+ order: getFollowsSort(sort),
where: followWhere,
include: [
{