mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 05:49:16 +01:00
Fix failing tests
This commit is contained in:
parent
6d2f9072ac
commit
c7743aa154
12 changed files with 245 additions and 200 deletions
|
|
@ -4,6 +4,7 @@ import {
|
|||
Column,
|
||||
CreateDateColumn,
|
||||
Entity,
|
||||
JoinTable,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
|
|
@ -66,14 +67,44 @@ export class Status extends BaseEntity {
|
|||
application!: Application | null;
|
||||
|
||||
@ManyToMany(() => Emoji, emoji => emoji.id)
|
||||
@JoinTable()
|
||||
emojis!: Emoji[];
|
||||
|
||||
@ManyToMany(() => RawActivity, activity => activity.id, {})
|
||||
@ManyToMany(() => RawActivity, activity => activity.id)
|
||||
@JoinTable()
|
||||
likes!: RawActivity[];
|
||||
|
||||
@ManyToMany(() => RawActivity, activity => activity.id, {})
|
||||
@ManyToMany(() => RawActivity, activity => activity.id)
|
||||
@JoinTable()
|
||||
announces!: RawActivity[];
|
||||
|
||||
static async createNew(data: {
|
||||
account: User;
|
||||
application: Application | null;
|
||||
content: string;
|
||||
visibility: APIStatus["visibility"];
|
||||
sensitive: boolean;
|
||||
spoiler_text: string;
|
||||
emojis: Emoji[];
|
||||
}) {
|
||||
const newStatus = new Status();
|
||||
|
||||
newStatus.account = data.account;
|
||||
newStatus.application = data.application ?? null;
|
||||
newStatus.content = data.content;
|
||||
newStatus.visibility = data.visibility;
|
||||
newStatus.sensitive = data.sensitive;
|
||||
newStatus.spoiler_text = data.spoiler_text;
|
||||
newStatus.emojis = data.emojis;
|
||||
newStatus.likes = [];
|
||||
newStatus.announces = [];
|
||||
newStatus.isReblog = false;
|
||||
newStatus.announces = [];
|
||||
|
||||
await newStatus.save();
|
||||
return newStatus;
|
||||
}
|
||||
|
||||
async toAPI(): Promise<APIStatus> {
|
||||
return {
|
||||
account: await this.account.toAPI(),
|
||||
|
|
@ -84,7 +115,7 @@ export class Status extends BaseEntity {
|
|||
this.emojis.map(async emoji => await emoji.toAPI())
|
||||
),
|
||||
favourited: false,
|
||||
favourites_count: 0,
|
||||
favourites_count: this.likes.length,
|
||||
id: this.id,
|
||||
in_reply_to_account_id: null,
|
||||
in_reply_to_id: null,
|
||||
|
|
@ -96,13 +127,13 @@ export class Status extends BaseEntity {
|
|||
poll: null,
|
||||
reblog: this.isReblog ? (await this.reblog?.toAPI()) ?? null : null,
|
||||
reblogged: false,
|
||||
reblogs_count: 0,
|
||||
reblogs_count: this.announces.length,
|
||||
replies_count: 0,
|
||||
sensitive: false,
|
||||
spoiler_text: "",
|
||||
tags: [],
|
||||
card: null,
|
||||
content: "",
|
||||
content: this.content,
|
||||
uri: `${config.http.base_url}/@${this.account.username}/${this.id}`,
|
||||
url: `${config.http.base_url}/@${this.account.username}/${this.id}`,
|
||||
visibility: "public",
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ import { APIAccount } from "~types/entities/account";
|
|||
import { RawActor } from "./RawActor";
|
||||
import { APActor } from "activitypub-types";
|
||||
import { RawObject } from "./RawObject";
|
||||
import { Token } from "./Token";
|
||||
import { Status } from "./Status";
|
||||
|
||||
const config = getConfig();
|
||||
|
||||
|
|
@ -132,6 +134,26 @@ export class User extends BaseEntity {
|
|||
return user;
|
||||
}
|
||||
|
||||
async selfDestruct() {
|
||||
// Clean up tokens
|
||||
const tokens = await Token.findBy({
|
||||
user: {
|
||||
id: this.id,
|
||||
},
|
||||
});
|
||||
|
||||
const statuses = await Status.findBy({
|
||||
account: {
|
||||
id: this.id,
|
||||
},
|
||||
});
|
||||
|
||||
// Delete both
|
||||
await Promise.all(tokens.map(async token => await token.remove()));
|
||||
|
||||
await Promise.all(statuses.map(async status => await status.remove()));
|
||||
}
|
||||
|
||||
async updateActor() {
|
||||
// Check if actor exists
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
|
|
@ -218,7 +240,7 @@ export class User extends BaseEntity {
|
|||
avatar_static: "",
|
||||
bot: false,
|
||||
created_at: this.created_at.toISOString(),
|
||||
display_name: "",
|
||||
display_name: this.display_name,
|
||||
followers_count: 0,
|
||||
following_count: 0,
|
||||
group: false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue