/** * Request Validators */ constructor() { super(); this.deleteUser = new JoiValidate({ 'params': { 'schema': Joi.object().keys({ id: Joi.number().integer().min(1).required(), }).unknown(), }, }); }
buildMethodSchema(argumentFields) { const schemaKeys = _.mapValues(argumentFields, this.buildFieldSchema); return Joi.object() .keys(schemaKeys) .unknown(true); }
Joi.array().items(Joi.object().keys({ name: Joi.string().required(), value: Joi.required() }).unknown(true)).unique((a, b) => a.name === b.name)
joi.object().keys({ client: joi.object().keys({ give: joi.func().arity(2).required(), take: joi.func().arity(2).required(), reset: joi.func().arity(2).required() }).unknown().required(), ext: joi.string().valid(['onPreAuth', 'onPostAuth', 'onPreHandler']).default('onPreHandler'), allRoutes: joi.boolean().default(false), bucket: joi.string().alphanum(), countSuccess: joi.boolean().default(true), addHeaders: joi.boolean().default(true), headerLimit: joi.string().default('X-RateLimit-Limit'), headerRemaining: joi.string().default('X-RateLimit-Remaining'), headerReset: joi.string().default('X-RateLimit-Reset'), message: joi.string().default('you have exceeded your request limit'), onError: joi.func().arity(3), getKey: joi.func().arity(1).default(getRequestIP), ttlTransform: joi.func().arity(1).default(ttl => ttl), errorSize: joi.number().integer().min(0).default(1), errorDelay: joi.number().integer().min(1).default(60) }).required()
/** * Request Validators */ constructor() { this.createUser = new JoiValidate({ 'body': { 'schema': Joi.object().keys({ name: Joi.string().trim().min(3).max(50).required(), email: Joi.string().email().required(), bio: Joi.string().trim().min(100).max(500), }).unknown(), }, }); }
payload: joi.object(arrayToObj(payloadSchema, params)).unknown(false).label(id),
Joi.array().items(Joi.object().keys({ name: Joi.string().required(), value: Joi.required() }).unknown(true)).unique((a, b) => a.name === b.name)
joi.object().keys({ client: joi.object().keys({ give: joi.func().arity(2).required(), take: joi.func().arity(2).required(), reset: joi.func().arity(2).required() }).unknown().required(), ext: joi.string().valid(['onPreAuth', 'onPostAuth', 'onPreHandler']).default('onPreHandler'), allRoutes: joi.boolean().default(false), bucket: joi.string().alphanum(), countSuccess: joi.boolean().default(true), addHeaders: joi.boolean().default(true), headerLimit: joi.string().default('X-RateLimit-Limit'), headerRemaining: joi.string().default('X-RateLimit-Remaining'), headerReset: joi.string().default('X-RateLimit-Reset'), message: joi.string().default('you have exceeded your request limit'), onError: joi.func().arity(3), getKey: joi.func().arity(1).default(getRequestIP), ttlTransform: joi.func().arity(1).default(ttl => ttl), errorSize: joi.number().integer().min(0).default(1), errorDelay: joi.number().integer().min(1).default(60) }).required()