🐛 fix /guilds/ route type
This commit is contained in:
parent
45116c6d8f
commit
e49591a78e
4
package-lock.json
generated
4
package-lock.json
generated
@ -780,7 +780,7 @@
|
|||||||
},
|
},
|
||||||
"node_modules/fosscord-server-util": {
|
"node_modules/fosscord-server-util": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#4125b7810d6da218fef6e26ec7cfbd1032c4cbb3",
|
"resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#775296d0048d290b959f07cde10a3ffc1430bad9",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
@ -2998,7 +2998,7 @@
|
|||||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
||||||
},
|
},
|
||||||
"fosscord-server-util": {
|
"fosscord-server-util": {
|
||||||
"version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#4125b7810d6da218fef6e26ec7cfbd1032c4cbb3",
|
"version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#775296d0048d290b959f07cde10a3ffc1430bad9",
|
||||||
"from": "fosscord-server-util@github:fosscord/fosscord-server-util",
|
"from": "fosscord-server-util@github:fosscord/fosscord-server-util",
|
||||||
"requires": {
|
"requires": {
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
@ -9,6 +9,9 @@ import {
|
|||||||
UserModel,
|
UserModel,
|
||||||
Snowflake,
|
Snowflake,
|
||||||
getPermission,
|
getPermission,
|
||||||
|
Guild,
|
||||||
|
Member,
|
||||||
|
PublicMember,
|
||||||
} from "fosscord-server-util";
|
} from "fosscord-server-util";
|
||||||
import { HTTPError } from "lambert-server";
|
import { HTTPError } from "lambert-server";
|
||||||
import { check } from "./../../../../util/instanceOf";
|
import { check } from "./../../../../util/instanceOf";
|
||||||
@ -50,7 +53,10 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
|
|
||||||
// // TODO: check if user is in more than (config max guilds)
|
// // TODO: check if user is in more than (config max guilds)
|
||||||
const { maxGuilds } = Config.get().limits.user;
|
const { maxGuilds } = Config.get().limits.user;
|
||||||
const user = await UserModel.findOne({ id: req.userid }, "guilds").exec();
|
const user = await UserModel.findOne(
|
||||||
|
{ id: req.userid },
|
||||||
|
"guilds username discriminator id public_flags avatar"
|
||||||
|
).exec();
|
||||||
|
|
||||||
if (!user) throw new HTTPError("User not found", 404);
|
if (!user) throw new HTTPError("User not found", 404);
|
||||||
|
|
||||||
@ -59,11 +65,7 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
}
|
}
|
||||||
|
|
||||||
const guildID = Snowflake.generate();
|
const guildID = Snowflake.generate();
|
||||||
const guild: any = {
|
const guild: Guild = {
|
||||||
// TODO:
|
|
||||||
// ! temp fix [Type: any] for:
|
|
||||||
// ! Conversion of type '{ event: "GUILD_CREATE"; data: { guild_id: bigint; name: string; region: string; owner_id: any; icon: undefined; afk_channel_id: undefined; afk_timeout: number; application_id: undefined; banner: undefined; ... 27 more ...; widget_enabled: boolean; }; guild_id: bigint; }' to type 'GuildCreateEvent' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.Type '{ event: "GUILD_CREATE"; data: { guild_id: bigint; name: string; region: string; owner_id: any; icon: undefined; afk_channel_id: undefined; afk_timeout: number; application_id: undefined; banner: undefined; ... 27 more ...; widget_enabled: boolean; }; guild_id: bigint; }' is missing the following properties from type 'GuildCreateEvent': $ignore, $isDefault, $isDeleted, $isEmpty, and 44 more.ts(2352)
|
|
||||||
|
|
||||||
name: body.name,
|
name: body.name,
|
||||||
region: body.region || "en-US",
|
region: body.region || "en-US",
|
||||||
owner_id: req.userid,
|
owner_id: req.userid,
|
||||||
@ -96,7 +98,6 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
unavailable: false,
|
unavailable: false,
|
||||||
vanity_url_code: undefined,
|
vanity_url_code: undefined,
|
||||||
verification_level: undefined,
|
verification_level: undefined,
|
||||||
voice_states: [],
|
|
||||||
welcome_screen: [],
|
welcome_screen: [],
|
||||||
widget_channel_id: undefined,
|
widget_channel_id: undefined,
|
||||||
widget_enabled: false,
|
widget_enabled: false,
|
||||||
@ -119,22 +120,19 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
}).save();
|
}).save();
|
||||||
|
|
||||||
// // TODO: automatically add user to guild
|
// // TODO: automatically add user to guild
|
||||||
const member: any = {
|
const member = {
|
||||||
// TODO:
|
|
||||||
// ! temp fix [Type: any] for:
|
|
||||||
// ! Conversion of type '{ event: "GUILD_MEMBER_ADD"; data: { guild_id: bigint; id: any; nick: null; roles: bigint[]; joined_at: number; premium_since: null; deaf: boolean; mute: boolean; pending: boolean; permissions: number; }; guild_id: bigint; }' to type 'GuildMemberAddEvent' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.Type '{ event: "GUILD_MEMBER_ADD"; data: { guild_id: bigint; id: any; nick: null; roles: bigint[]; joined_at: number; premium_since: null; deaf: boolean; mute: boolean; pending: boolean; permissions: number; }; guild_id: bigint; }' is missing the following properties from type 'GuildMemberAddEvent': $ignore, $isDefault, $isDeleted, $isEmpty, and 44 more.ts(2352)
|
|
||||||
|
|
||||||
id: req.userid,
|
id: req.userid,
|
||||||
guild_id: guildID,
|
guild_id: guildID,
|
||||||
nick: null,
|
nick: undefined,
|
||||||
roles: [guildID],
|
roles: [guildID],
|
||||||
joined_at: Date.now(),
|
joined_at: Date.now(),
|
||||||
premium_since: null,
|
premium_since: undefined,
|
||||||
deaf: false,
|
deaf: false,
|
||||||
mute: false,
|
mute: false,
|
||||||
pending: false,
|
pending: false,
|
||||||
permissions: 8,
|
permissions: 8n,
|
||||||
};
|
};
|
||||||
|
|
||||||
await new MemberModel({
|
await new MemberModel({
|
||||||
...member,
|
...member,
|
||||||
settings: {
|
settings: {
|
||||||
@ -154,16 +152,21 @@ router.post("/", check(GuildCreateSchema), async (req: Request, res: Response) =
|
|||||||
event: "GUILD_MEMBER_ADD",
|
event: "GUILD_MEMBER_ADD",
|
||||||
data: {
|
data: {
|
||||||
...member,
|
...member,
|
||||||
|
user: {
|
||||||
|
username: user.username,
|
||||||
|
discriminator: user.discriminator,
|
||||||
|
id: user.id,
|
||||||
|
publicFlags: user.public_flags,
|
||||||
|
avatar: user.avatar,
|
||||||
|
},
|
||||||
guild_id: guildID,
|
guild_id: guildID,
|
||||||
},
|
},
|
||||||
guild_id: guildID,
|
guild_id: guildID,
|
||||||
} as GuildMemberAddEvent);
|
} as GuildMemberAddEvent);
|
||||||
|
|
||||||
await emitEvent({
|
await emitEvent({
|
||||||
event: "GUILD_CREATE",
|
event: "GUILD_CREATE",
|
||||||
data: {
|
data: guild,
|
||||||
...guild,
|
|
||||||
guild_id: guildID,
|
|
||||||
},
|
|
||||||
guild_id: guildID,
|
guild_id: guildID,
|
||||||
} as GuildCreateEvent);
|
} as GuildCreateEvent);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -197,5 +200,3 @@ router.delete("/:id", async (req: Request, res: Response) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
||||||
export async function addMember(guild: bigint, user: bigint) {}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user