mirror of
https://github.com/spacebarchat/server.git
synced 2026-05-15 05:15:17 +00:00
Merge pull request #1465 from CyberL1/fix/name-must-not-be-empty
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import { route } from "@spacebar/api";
|
||||
import { Application, DiscordApiErrors, User, createAppBotUser, generateToken, handleFile } from "@spacebar/util";
|
||||
import { Application, DiscordApiErrors, FieldErrors, User, createAppBotUser, generateToken, handleFile } from "@spacebar/util";
|
||||
import { Request, Response, Router } from "express";
|
||||
import { HTTPError } from "lambert-server";
|
||||
import { verifyToken } from "node-2fa";
|
||||
@@ -100,6 +100,15 @@ router.patch(
|
||||
const body = req.body as BotModifySchema;
|
||||
if (!body.avatar?.trim()) delete body.avatar;
|
||||
|
||||
if (body.username?.trim() == "") {
|
||||
throw FieldErrors({
|
||||
username: {
|
||||
code: "BASE_TYPE_REQUIRED",
|
||||
message: req.t("common:field.BASE_TYPE_REQUIRED"),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
const app = await Application.findOneOrFail({
|
||||
where: { id: req.params.application_id },
|
||||
relations: { bot: true, owner: true },
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*/
|
||||
|
||||
import { route } from "@spacebar/api";
|
||||
import { Application, DiscordApiErrors, Guild, handleFile, User } from "@spacebar/util";
|
||||
import { Application, DiscordApiErrors, FieldErrors, Guild, handleFile, User } from "@spacebar/util";
|
||||
import { Request, Response, Router } from "express";
|
||||
import { HTTPError } from "lambert-server";
|
||||
import { verifyToken } from "node-2fa";
|
||||
@@ -73,6 +73,15 @@ router.patch(
|
||||
|
||||
if (app.owner.totp_secret && (!req.body.code || verifyToken(app.owner.totp_secret, req.body.code))) throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008);
|
||||
|
||||
if (body.name?.trim() == "") {
|
||||
throw FieldErrors({
|
||||
name: {
|
||||
code: "BASE_TYPE_REQUIRED",
|
||||
message: req.t("common:field.BASE_TYPE_REQUIRED"),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (body.icon) {
|
||||
body.icon = await handleFile(`/app-icons/${app.id}`, body.icon as string);
|
||||
}
|
||||
|
||||
@@ -19,4 +19,5 @@
|
||||
export interface BotModifySchema {
|
||||
avatar?: string;
|
||||
username?: string;
|
||||
banner?: string;
|
||||
}
|
||||
|
||||
@@ -29,19 +29,20 @@ export type ErrorContent = { code: string; message: string };
|
||||
export type ObjectErrorContent = { _errors: ErrorContent[] };
|
||||
|
||||
export function FieldErrors(fields: Record<string, { code?: string; message: string }>, errors?: ErrorObject[]) {
|
||||
return new FieldError(
|
||||
50035,
|
||||
"Invalid Form Body",
|
||||
Object.values(fields).map(({ message, code }) => ({
|
||||
const errorsObject = {} as Record<string, ObjectErrorContent>;
|
||||
|
||||
Object.entries(fields).map(([key, { message, code }]) => {
|
||||
errorsObject[key] = {
|
||||
_errors: [
|
||||
{
|
||||
message,
|
||||
code: code || "BASE_TYPE_INVALID",
|
||||
},
|
||||
],
|
||||
})),
|
||||
errors,
|
||||
);
|
||||
};
|
||||
});
|
||||
|
||||
return new FieldError(50035, "Invalid Form Body", errorsObject, errors);
|
||||
}
|
||||
|
||||
// TODO: implement Image data type: Data URI scheme that supports JPG, GIF, and PNG formats. An example Data URI format is: data:image/jpeg;base64,BASE64_ENCODED_JPEG_IMAGE_DATA
|
||||
|
||||
Reference in New Issue
Block a user