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'
import { VideoCommentModel } from '../video/video-comment'
import { UserModel } from './user'
+import { CONFIG } from '../../initializers'
@DefaultScope({
include: [
}
static load (id: number, transaction?: Sequelize.Transaction) {
- return AccountModel.findById(id, { transaction })
+ return AccountModel.findByPk(id, { transaction })
}
static loadByUUID (uuid: string) {
return AccountModel.findOne(query)
}
+ static loadByNameWithHost (nameWithHost: string) {
+ const [ accountName, host ] = nameWithHost.split('@')
+
+ if (!host || host === CONFIG.WEBSERVER.HOST) return AccountModel.loadLocalByName(accountName)
+
+ return AccountModel.loadByNameAndHost(accountName, host)
+ }
+
static loadLocalByName (name: string) {
const query = {
where: {
})
}
+ static listLocalsForSitemap (sort: string) {
+ const query = {
+ attributes: [ ],
+ offset: 0,
+ order: getSort(sort),
+ include: [
+ {
+ attributes: [ 'preferredUsername', 'serverId' ],
+ model: ActorModel.unscoped(),
+ where: {
+ serverId: null
+ }
+ }
+ ]
+ }
+
+ return AccountModel
+ .unscoped()
+ .findAll(query)
+ }
+
toFormattedJSON (): Account {
const actor = this.Actor.toFormattedJSON()
const account = {
displayName: this.getDisplayName(),
description: this.description,
createdAt: this.createdAt,
- updatedAt: this.updatedAt
+ updatedAt: this.updatedAt,
+ userId: this.userId ? this.userId : undefined
}
return Object.assign(actor, account)
return this.Actor.isOwned()
}
+ isOutdated () {
+ return this.Actor.isOutdated()
+ }
+
getDisplayName () {
return this.name
}