Joi.object().keys({ dimension: id, member: id, operator: Joi.valid(operators).required(), values: Joi.array().items(Joi.string().allow('', null), Joi.lazy(() => oneFilter)) }).xor('dimension', 'member')
Joi.object().keys({ or: Joi.array().items(oneFilter, Joi.lazy(() => oneCondition).description('oneCondition schema')), and: Joi.array().items(oneFilter, Joi.lazy(() => oneCondition).description('oneCondition schema')), }).xor('or', 'and')
Joi.object().keys({ title: Joi.string(), description: Joi.string(), dimensions: Joi.func(), segments: Joi.func(), order: Joi.array().items(Joi.object().keys({ member: Joi.func().required(), direction: Joi.any().valid('asc', 'desc').required() })), filters: Joi.array().items(Joi.object().keys({ member: Joi.func().required(), operator: Joi.any().valid('contains', 'notContains', 'equals', 'set', 'notSet', 'gt', 'gte', 'lt', 'lte'), params: Joi.array().items(Joi.string().allow('').optional()) })), timeDimension: Joi.object().keys({ dimension: Joi.func().required(), dateRange: Joi.string().required(), granularity: Joi.any().valid('hour', 'day', 'week', 'month', 'year', null) }), visualization: Joi.object().keys({ type: Joi.any().valid('bar', 'line', 'table', 'area', 'singleValue', 'pie').required(), autoScale: Joi.boolean(), seriesPositioning: Joi.any().valid('stacked', 'grouped', 'proportional') }), pivot: Joi.object().keys({ x: Joi.array(), y: Joi.array() }),
/** * Get the component configuration schema. * Can be overriden by the component implementation class * @returns {*} */ getConfigurationSchema() { return this.joi.object(); }
//Register validation const registerValidation = data => { const schema= Joi.object({ name:Joi.string().min(6).required(), email: Joi.string().min(6).required().email(), password: Joi.string().min(6).required() }); return schema.validate(data); }
const validate = (schema, data) => { const response = Joi.object(schema) .validate(data) if (response.error != null) { return { error: true, messages: response.error.details.map(item => getMessage(item.type, item.context.key)) } } else { return { error: false, data: data } } }
/** * Get the Trigger configuration schema. * @returns {*} */ getConfigurationSchema() { return this.joi.object().keys({ host: [this.joi.string().hostname().required(), this.joi.string().ip().required()], port: this.joi.number().port().required(), user: this.joi.string().required(), pass: this.joi.string().required(), from: this.joi.string().email().required(), to: this.joi.string().email().required(), }); }
function validateUser(user) { const schema = Joi.object({ name: Joi.string().required(), email: Joi.string().required().email(), password: Joi.string().min(5).max(12).required() }); return schema.validate(user); }
/** * Get the Trigger configuration schema. * @returns {*} */ getConfigurationSchema() { return this.joi.object().keys({ mock: this.joi.string().default('mock'), }); }
lab.before(async () => { DummyModel = class extends MongoModels {}; DummyModel.schema = Joi.object().keys({ _id: Joi.object(), count: Joi.number(), group: Joi.string(), isCool: Joi.boolean(), name: Joi.string().required() }); DummyModel.collectionName = 'dummies'; await MongoModels.connect(config.connection, config.options); });
const loginValidation = (data) => { const validSchema = Joi.object({ email: Joi.string().min(6).required().email(), password: Joi.string().min(6).required() }); return validSchema.validate(data); }
/** * Get the Trigger configuration schema. * @returns {*} */ getConfigurationSchema() { return this.joi.object().keys({ url: this.joi.string().uri({ scheme: ['mqtt', 'mqtts', 'tcp', 'tls', 'ws', 'wss'], }).required(), topic: this.joi.string().default('wud/image'), user: this.joi.string(), password: this.joi.string(), }); }
function validate(req) { const schema = Joi.object({ email: Joi.string().required().email(), password: Joi.string().required() }); return schema.validate(req); }
// Validate input data before signup const validateSignup = (data) => { const schema = Joi.object({ name: Joi.string().required().min(6).required(), email: emailValidation, password: passwordValidation, }); return schema.validate(data); }
/** * Get the Trigger configuration schema. * @returns {*} */ getConfigurationSchema() { return this.joi.object().keys({ key: this.joi.string().required(), event: this.joi.string().default('wud-image'), }); }