} from 'sequelize-typescript'
import { Account } from '../../../shared/models/actors'
import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts'
+import { sendDeleteActor } from '../../lib/activitypub/send'
import { ActorModel } from '../activitypub/actor'
import { ApplicationModel } from '../application/application'
-import { AvatarModel } from '../avatar/avatar'
import { ServerModel } from '../server/server'
import { getSort, throwIfNotValid } from '../utils'
import { VideoChannelModel } from '../video/video-channel'
@DefaultScope({
include: [
{
- model: () => ActorModel,
- required: true,
- include: [
- {
- model: () => ServerModel,
- required: false
- },
- {
- model: () => AvatarModel,
- required: false
- }
- ]
+ model: () => ActorModel, // Default scope includes avatar and server
+ required: true
}
]
})
instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel
}
- return instance.Actor.destroy({ transaction: options.transaction })
+ if (instance.isOwned()) {
+ return sendDeleteActor(instance.Actor, options.transaction)
+ }
+
+ return undefined
}
- static load (id: number) {
- return AccountModel.findById(id)
+ static load (id: number, transaction?: Sequelize.Transaction) {
+ return AccountModel.findById(id, { transaction })
}
static loadByUUID (uuid: string) {
return AccountModel.findOne(query)
}
- static loadLocalByNameAndHost (name: string, host: string) {
+ static loadByNameAndHost (name: string, host: string) {
const query = {
include: [
{
}
return AccountModel.findAndCountAll(query)
- .then(({ rows, count }) => {
- return {
- data: rows,
- total: count
- }
- })
+ .then(({ rows, count }) => {
+ return {
+ data: rows,
+ total: count
+ }
+ })
}
toFormattedJSON (): Account {