summary refs log tree commit diff
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-12-24 16:28:00 +1100
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-12-24 16:28:00 +1100
commitac8ac9ada0bf5725ddbffbf4ecdd26068ce0b334 (patch)
tree8c01bd102ef9cec6032da6bd46c9c86329d8a281
parentMerge branch 'maddy/refactor' of github.com:fosscord/fosscord-server into mad... (diff)
downloadserver-ac8ac9ada0bf5725ddbffbf4ecdd26068ce0b334.tar.xz
Fix creating bot accounts
-rw-r--r--src/api/routes/applications/#id/bot/index.ts5
-rw-r--r--src/util/entities/User.ts16
2 files changed, 16 insertions, 5 deletions
diff --git a/src/api/routes/applications/#id/bot/index.ts b/src/api/routes/applications/#id/bot/index.ts
index ed5d6a70..c21e19ca 100644
--- a/src/api/routes/applications/#id/bot/index.ts
+++ b/src/api/routes/applications/#id/bot/index.ts
@@ -15,6 +15,7 @@ router.post("/", route({}), async (req: Request, res: Response) => {
 	const user = await User.register({
 		username: app.name,
 		password: undefined,
+		id: app.id,
 		req,
 	});
 
@@ -29,7 +30,9 @@ router.post("/", route({}), async (req: Request, res: Response) => {
 
 	await app.save();
 
-	res.send().status(204);
+	res.send({
+		token: await generateToken(user.id)
+	}).status(204);
 });
 
 router.post("/reset", route({}), async (req: Request, res: Response) => {
diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts
index 79ea6c3c..eeffab5b 100644
--- a/src/util/entities/User.ts
+++ b/src/util/entities/User.ts
@@ -306,12 +306,14 @@ export class User extends BaseClass {
 		username,
 		password,
 		date_of_birth,
+		id,
 		req,
 	}: {
 		username: string;
 		password?: string;
 		email?: string;
 		date_of_birth?: Date; // "2000-04-03"
+		id?: string,
 		req?: any;
 	}) {
 		// trim special uf8 control characters -> Backspace, Newline, ...
@@ -334,10 +336,14 @@ export class User extends BaseClass {
 		const language =
 			req.language === "en" ? "en-US" : req.language || "en-US";
 
+		const settings = UserSettings.create({
+			locale: language,
+		})
+
 		const user = User.create({
 			username: username,
 			discriminator,
-			id: Snowflake.generate(),
+			id: id || Snowflake.generate(),
 			email: email,
 			rights: Config.get().register.defaultRights,
 			data: {
@@ -348,12 +354,14 @@ export class User extends BaseClass {
 			premium_type: Config.get().defaults.user.premium_type,
 			premium: Config.get().defaults.user.premium,
 			verified: Config.get().defaults.user.verified,
-			settings: { ...new UserSettings(), locale: language }
+			settings: settings,
 		});
 
 		user.validate();
-		await user.save();
-		await user.settings.save();
+		await Promise.all([
+			user.save(),
+			settings.save(),
+		])
 
 		setImmediate(async () => {
 			if (Config.get().guild.autoJoin.enabled) {