summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/api/routes/applications/#id/bot/index.ts19
-rw-r--r--src/api/routes/applications/index.ts21
-rw-r--r--src/util/util/Application.ts24
-rw-r--r--src/util/util/index.ts1
4 files changed, 30 insertions, 35 deletions
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";