diff options
Diffstat (limited to 'src/server/api')
| -rw-r--r-- | src/server/api/endpoints/admin/relays/add.ts | 15 |
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); }); |