summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/admin
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/admin')
-rw-r--r--src/server/api/endpoints/admin/relays/add.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/server/api/endpoints/admin/relays/add.ts b/src/server/api/endpoints/admin/relays/add.ts
index 3ea6bcc73b..bcda1050e8 100644
--- a/src/server/api/endpoints/admin/relays/add.ts
+++ b/src/server/api/endpoints/admin/relays/add.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { addRelay } from '../../../../../services/relay';
+import { ApiError } from '../../../error';
export const meta = {
desc: {
@@ -17,8 +18,22 @@ export const meta = {
validator: $.str
},
},
+
+ errors: {
+ invalidUrl: {
+ message: 'Invalid URL',
+ code: 'INVALID_URL',
+ id: 'fb8c92d3-d4e5-44e7-b3d4-800d5cef8b2c'
+ },
+ }
};
export default define(meta, async (ps, user) => {
+ try {
+ if (new URL(ps.inbox).protocol !== 'https:') throw 'https only';
+ } catch {
+ throw new ApiError(meta.errors.invalidUrl);
+ }
+
return await addRelay(ps.inbox);
});