UNPKG

@atproto/ozone

Version:

Backend service for moderating the Bluesky network.

62 lines 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.settingValidators = void 0; const xrpc_server_1 = require("@atproto/xrpc-server"); const constants_1 = require("./constants"); exports.settingValidators = new Map([ [ constants_1.ProtectedTagSettingKey, async (setting) => { if (setting.managerRole !== 'tools.ozone.team.defs#roleAdmin') { throw new xrpc_server_1.InvalidRequestError('Only admins should be able to configure protected tags'); } if (typeof setting.value !== 'object') { throw new xrpc_server_1.InvalidRequestError('Invalid value'); } for (const [key, val] of Object.entries(setting.value)) { if (!val || typeof val !== 'object') { throw new xrpc_server_1.InvalidRequestError(`Invalid configuration for tag ${key}`); } if (!val['roles'] && !val['moderators']) { throw new xrpc_server_1.InvalidRequestError(`Must define who a list of moderators or a role who can action subjects with ${key} tag`); } if (val['roles']) { if (!Array.isArray(val['roles'])) { throw new xrpc_server_1.InvalidRequestError(`Roles must be an array of moderator roles for tag ${key}`); } if (!val['roles']?.length) { throw new xrpc_server_1.InvalidRequestError(`Must define at least one role for tag ${key}`); } } if (val['moderators']) { if (!Array.isArray(val['moderators'])) { throw new xrpc_server_1.InvalidRequestError(`Moderators must be an array of moderator DIDs for tag ${key}`); } if (!val['moderators']?.length) { throw new xrpc_server_1.InvalidRequestError(`Must define at least one moderator DID for tag ${key}`); } } } }, ], [ constants_1.PolicyListSettingKey, async (setting) => { if (setting.managerRole !== 'tools.ozone.team.defs#roleAdmin') { throw new xrpc_server_1.InvalidRequestError('Only admins should be able to manage policy list'); } if (typeof setting.value !== 'object') { throw new xrpc_server_1.InvalidRequestError('Invalid value'); } for (const [key, val] of Object.entries(setting.value)) { if (!val || typeof val !== 'object') { throw new xrpc_server_1.InvalidRequestError(`Invalid configuration for policy ${key}`); } if (!val['name'] || !val['description']) { throw new xrpc_server_1.InvalidRequestError(`Must define a name and description for policy ${key}`); } } }, ], ]); //# sourceMappingURL=validators.js.map