From 942cce913dcf00acc94f4a2cefc0902427a6c7b7 Mon Sep 17 00:00:00 2001 From: Puyodead1 Date: Sat, 6 May 2023 23:45:09 -0400 Subject: add option to auto add bot users to new apps --- src/api/routes/applications/index.ts | 21 +++++++++++++++++++++ src/util/config/types/GeneralConfiguration.ts | 1 + 2 files changed, 22 insertions(+) (limited to 'src') diff --git a/src/api/routes/applications/index.ts b/src/api/routes/applications/index.ts index 1e536a06..27300c4a 100644 --- a/src/api/routes/applications/index.ts +++ b/src/api/routes/applications/index.ts @@ -20,6 +20,7 @@ import { route } from "@spacebar/api"; import { Application, ApplicationCreateSchema, + Config, User, trimSpecial, } from "@spacebar/util"; @@ -68,6 +69,26 @@ router.post( flags: 0, }); + // april 14, 2023: discord made bot users be automatically added to all new apps + const { autoCreateBotUsers } = Config.get().general; + if (autoCreateBotUsers) { + const user = await User.register({ + username: app.name, + password: undefined, + id: app.id, + req, + }); + + user.id = app.id; + user.premium_since = new Date(); + user.bot = true; + + await user.save(); + + // flags is NaN here? + app.assign({ bot: user, flags: app.flags || 0 }); + } + await app.save(); res.json(app); diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts index c20fe9a7..cff8c527 100644 --- a/src/util/config/types/GeneralConfiguration.ts +++ b/src/util/config/types/GeneralConfiguration.ts @@ -28,4 +28,5 @@ export class GeneralConfiguration { correspondenceUserID: string | null = null; image: string | null = null; instanceId: string = Snowflake.generate(); + autoCreateBotUsers: boolean = false; } -- cgit 1.4.1 From bb22e42da93f9e9a6ea5c00980cff9c865ea3c48 Mon Sep 17 00:00:00 2001 From: Puyodead1 Date: Sun, 7 May 2023 00:00:42 -0400 Subject: create util for app bot user creation --- src/api/routes/applications/#id/bot/index.ts | 19 ++----------------- src/api/routes/applications/index.ts | 21 +++------------------ src/util/util/Application.ts | 24 ++++++++++++++++++++++++ src/util/util/index.ts | 1 + 4 files changed, 30 insertions(+), 35 deletions(-) create mode 100644 src/util/util/Application.ts (limited to 'src') diff --git a/src/api/routes/applications/#id/bot/index.ts b/src/api/routes/applications/#id/bot/index.ts index 0a6e6fd4..3c431e3d 100644 --- a/src/api/routes/applications/#id/bot/index.ts +++ b/src/api/routes/applications/#id/bot/index.ts @@ -22,6 +22,7 @@ import { BotModifySchema, DiscordApiErrors, User, + createAppBotUser, generateToken, handleFile, } from "@spacebar/util"; @@ -52,23 +53,7 @@ router.post( if (app.owner.id != req.user_id) throw DiscordApiErrors.ACTION_NOT_AUTHORIZED_ON_APPLICATION; - const user = await User.register({ - username: app.name, - password: undefined, - id: app.id, - req, - }); - - user.id = app.id; - user.premium_since = new Date(); - user.bot = true; - - await user.save(); - - // flags is NaN here? - app.assign({ bot: user, flags: app.flags || 0 }); - - await app.save(); + const user = await createAppBotUser(app, req); res.send({ token: await generateToken(user.id), diff --git a/src/api/routes/applications/index.ts b/src/api/routes/applications/index.ts index 27300c4a..5bba3338 100644 --- a/src/api/routes/applications/index.ts +++ b/src/api/routes/applications/index.ts @@ -22,6 +22,7 @@ import { ApplicationCreateSchema, Config, User, + createAppBotUser, trimSpecial, } from "@spacebar/util"; import { Request, Response, Router } from "express"; @@ -72,24 +73,8 @@ router.post( // april 14, 2023: discord made bot users be automatically added to all new apps const { autoCreateBotUsers } = Config.get().general; if (autoCreateBotUsers) { - const user = await User.register({ - username: app.name, - password: undefined, - id: app.id, - req, - }); - - user.id = app.id; - user.premium_since = new Date(); - user.bot = true; - - await user.save(); - - // flags is NaN here? - app.assign({ bot: user, flags: app.flags || 0 }); - } - - await app.save(); + await createAppBotUser(app, req); + } else await app.save(); res.json(app); }, diff --git a/src/util/util/Application.ts b/src/util/util/Application.ts new file mode 100644 index 00000000..23019a7f --- /dev/null +++ b/src/util/util/Application.ts @@ -0,0 +1,24 @@ +import { Request } from "express"; +import { Application, User } from "../entities"; + +export async function createAppBotUser(app: Application, req: Request) { + const user = await User.register({ + username: app.name, + password: undefined, + id: app.id, + req, + }); + + user.id = app.id; + user.premium_since = new Date(); + user.bot = true; + + await user.save(); + + // flags is NaN here? + app.assign({ bot: user, flags: app.flags || 0 }); + + await app.save(); + + return user; +} diff --git a/src/util/util/index.ts b/src/util/util/index.ts index 3a98be15..6076f70a 100644 --- a/src/util/util/index.ts +++ b/src/util/util/index.ts @@ -18,6 +18,7 @@ export * from "./ApiError"; export * from "./Array"; +export * from "./Application"; export * from "./BitField"; //export * from "./Categories"; export * from "./cdn"; -- cgit 1.4.1 From f256209ff27ed5d5301e9266fdf7c1692a5f0511 Mon Sep 17 00:00:00 2001 From: Puyodead1 Date: Sun, 7 May 2023 00:06:56 -0400 Subject: fix build failure --- src/util/util/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/util/util/index.ts b/src/util/util/index.ts index 6076f70a..10e09b5c 100644 --- a/src/util/util/index.ts +++ b/src/util/util/index.ts @@ -18,7 +18,6 @@ export * from "./ApiError"; export * from "./Array"; -export * from "./Application"; export * from "./BitField"; //export * from "./Categories"; export * from "./cdn"; @@ -43,3 +42,4 @@ export * from "./Token"; export * from "./TraverseDirectory"; export * from "./WebAuthn"; export * from "./Gifs"; +export * from "./Application"; -- cgit 1.4.1