🐛 fix #311
This commit is contained in:
parent
a446837679
commit
d5fcb7f971
@ -37,12 +37,22 @@ router.patch("/", check(GuildUpdateSchema), async (req: Request, res: Response)
|
|||||||
if (body.banner) body.banner = await handleFile(`/banners/${guild_id}`, body.banner);
|
if (body.banner) body.banner = await handleFile(`/banners/${guild_id}`, body.banner);
|
||||||
if (body.splash) body.splash = await handleFile(`/splashes/${guild_id}`, body.splash);
|
if (body.splash) body.splash = await handleFile(`/splashes/${guild_id}`, body.splash);
|
||||||
|
|
||||||
const guild = await Guild.findOneOrFail({ id: guild_id });
|
var guild = await Guild.findOneOrFail({
|
||||||
|
where: { id: guild_id },
|
||||||
|
relations: ["emojis", "roles", "stickers"]
|
||||||
|
});
|
||||||
|
// TODO: check if body ids are valid
|
||||||
guild.assign(body);
|
guild.assign(body);
|
||||||
|
|
||||||
await Promise.all([guild.save(), emitEvent({ event: "GUILD_UPDATE", data: guild, guild_id } as GuildUpdateEvent)]);
|
const data = guild.toJSON();
|
||||||
|
// TODO: guild hashes
|
||||||
|
// TODO: fix vanity_url_code, template_id
|
||||||
|
delete data.vanity_url_code;
|
||||||
|
delete data.template_id;
|
||||||
|
|
||||||
return res.json(guild);
|
await Promise.all([guild.save(), emitEvent({ event: "GUILD_UPDATE", data, guild_id } as GuildUpdateEvent)]);
|
||||||
|
|
||||||
|
return res.json(data);
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
@ -40,6 +40,8 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
premium_tier: 0,
|
premium_tier: 0,
|
||||||
system_channel_flags: 0,
|
system_channel_flags: 0,
|
||||||
unavailable: false,
|
unavailable: false,
|
||||||
|
nsfw: false,
|
||||||
|
nsfw_level: 0,
|
||||||
verification_level: 0,
|
verification_level: 0,
|
||||||
welcome_screen: {
|
welcome_screen: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
@ -33,7 +33,7 @@ export const GuildUpdateSchema = {
|
|||||||
$icon: String,
|
$icon: String,
|
||||||
$verification_level: Number,
|
$verification_level: Number,
|
||||||
$default_message_notifications: Number,
|
$default_message_notifications: Number,
|
||||||
$system_channel_flags: String,
|
$system_channel_flags: Number,
|
||||||
$system_channel_id: String,
|
$system_channel_id: String,
|
||||||
$explicit_content_filter: Number,
|
$explicit_content_filter: Number,
|
||||||
$public_updates_channel_id: String,
|
$public_updates_channel_id: String,
|
||||||
|
@ -138,12 +138,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
|
|||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
guilds: guilds.map((x) => {
|
guilds: guilds.map((x) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
x.guild_hashes = {
|
x.guild_hashes = {};
|
||||||
channels: { omitted: false, hash: "y4PV2fZ0gmo" },
|
|
||||||
metadata: { omitted: false, hash: "bs1/ckvud3Y" },
|
|
||||||
roles: { omitted: false, hash: "SxA+c5CaYpo" },
|
|
||||||
version: 1,
|
|
||||||
};
|
|
||||||
return x;
|
return x;
|
||||||
}),
|
}),
|
||||||
guild_experiments: [], // TODO
|
guild_experiments: [], // TODO
|
||||||
|
@ -17,6 +17,8 @@ import { Webhook } from "./Webhook";
|
|||||||
// TODO: stage_instances
|
// TODO: stage_instances
|
||||||
// TODO: threads
|
// TODO: threads
|
||||||
|
|
||||||
|
export const PublicGuildRelations = ["channels", "emojis", "members", "roles", "stickers", "voice_states"];
|
||||||
|
|
||||||
@Entity("guilds")
|
@Entity("guilds")
|
||||||
export class Guild extends BaseClass {
|
export class Guild extends BaseClass {
|
||||||
@Column({ nullable: true })
|
@Column({ nullable: true })
|
||||||
@ -91,9 +93,9 @@ export class Guild extends BaseClass {
|
|||||||
|
|
||||||
@Column({ nullable: true })
|
@Column({ nullable: true })
|
||||||
@RelationId((guild: Guild) => guild.template)
|
@RelationId((guild: Guild) => guild.template)
|
||||||
template_id: string;
|
template_id?: string;
|
||||||
|
|
||||||
@JoinColumn({ name: "template_id" })
|
@JoinColumn({ name: "template_id", referencedColumnName: "id" })
|
||||||
@ManyToOne(() => Template)
|
@ManyToOne(() => Template)
|
||||||
template: Template;
|
template: Template;
|
||||||
|
|
||||||
@ -127,7 +129,7 @@ export class Guild extends BaseClass {
|
|||||||
@RelationId((guild: Guild) => guild.owner)
|
@RelationId((guild: Guild) => guild.owner)
|
||||||
owner_id: string;
|
owner_id: string;
|
||||||
|
|
||||||
@JoinColumn([{ name: "owner_id", referencedColumnName: "id" }])
|
@JoinColumn({ name: "owner_id", referencedColumnName: "id" })
|
||||||
@ManyToOne(() => User)
|
@ManyToOne(() => User)
|
||||||
owner: User;
|
owner: User;
|
||||||
|
|
||||||
@ -209,4 +211,10 @@ export class Guild extends BaseClass {
|
|||||||
|
|
||||||
@Column({ nullable: true })
|
@Column({ nullable: true })
|
||||||
widget_enabled?: boolean;
|
widget_enabled?: boolean;
|
||||||
|
|
||||||
|
@Column({ nullable: true })
|
||||||
|
nsfw_level?: number;
|
||||||
|
|
||||||
|
@Column({ nullable: true })
|
||||||
|
nsfw?: boolean;
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import { HTTPError } from "lambert-server";
|
|||||||
import { Role } from "./Role";
|
import { Role } from "./Role";
|
||||||
import { Snowflake } from "../util/Snowflake";
|
import { Snowflake } from "../util/Snowflake";
|
||||||
import { BaseClassWithoutId } from "./BaseClass";
|
import { BaseClassWithoutId } from "./BaseClass";
|
||||||
|
import { PublicGuildRelations } from ".";
|
||||||
|
|
||||||
@Entity("members")
|
@Entity("members")
|
||||||
@Index(["id", "guild_id"], { unique: true })
|
@Index(["id", "guild_id"], { unique: true })
|
||||||
@ -209,7 +210,7 @@ export class Member extends BaseClassWithoutId {
|
|||||||
where: {
|
where: {
|
||||||
id: guild_id,
|
id: guild_id,
|
||||||
},
|
},
|
||||||
relations: ["channels", "emojis", "members", "roles", "stickers", "voice_states"],
|
relations: PublicGuildRelations,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (await Member.count({ id: user.id, guild: { id: guild_id } }))
|
if (await Member.count({ id: user.id, guild: { id: guild_id } }))
|
||||||
@ -259,12 +260,7 @@ export class Member extends BaseClassWithoutId {
|
|||||||
...guild,
|
...guild,
|
||||||
members: [...guild.members, { ...member, user }],
|
members: [...guild.members, { ...member, user }],
|
||||||
member_count: (guild.member_count || 0) + 1,
|
member_count: (guild.member_count || 0) + 1,
|
||||||
guild_hashes: {
|
guild_hashes: {},
|
||||||
channels: { omitted: false, hash: "nkMQJ5nl5Cg" },
|
|
||||||
metadata: { omitted: false, hash: "+5ybMfcb8iw" },
|
|
||||||
roles: { omitted: false, hash: "Idhc6P9ktfM" },
|
|
||||||
version: 1,
|
|
||||||
},
|
|
||||||
guild_scheduled_events: [],
|
guild_scheduled_events: [],
|
||||||
joined_at: member.joined_at,
|
joined_at: member.joined_at,
|
||||||
presences: [],
|
presences: [],
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn, RelationId } from "typeorm";
|
import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryColumn, RelationId } from "typeorm";
|
||||||
import { BaseClass } from "./BaseClass";
|
import { BaseClass } from "./BaseClass";
|
||||||
import { Guild } from "./Guild";
|
import { Guild } from "./Guild";
|
||||||
import { User } from "./User";
|
import { User } from "./User";
|
||||||
|
|
||||||
@Entity("templates")
|
@Entity("templates")
|
||||||
export class Template extends BaseClass {
|
export class Template extends BaseClass {
|
||||||
@PrimaryColumn()
|
@Column({ unique: true })
|
||||||
code: string;
|
code: string;
|
||||||
|
|
||||||
@Column()
|
@Column()
|
||||||
|
@ -127,12 +127,7 @@ export interface GuildCreateEvent extends Event {
|
|||||||
joined_at: Date;
|
joined_at: Date;
|
||||||
// TODO: add them to guild
|
// TODO: add them to guild
|
||||||
guild_scheduled_events: never[];
|
guild_scheduled_events: never[];
|
||||||
guild_hashes: {
|
guild_hashes: {};
|
||||||
channels: { omitted: boolean; hash: string };
|
|
||||||
metadata: { omitted: boolean; hash: string };
|
|
||||||
roles: { omitted: boolean; hash: string };
|
|
||||||
version: number;
|
|
||||||
};
|
|
||||||
presences: never[];
|
presences: never[];
|
||||||
stage_instances: never[];
|
stage_instances: never[];
|
||||||
threads: never[];
|
threads: never[];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user