有没有一种方法可以使用Joi检查重叠的时间范围?

时间:2019-03-28 15:32:44

标签: node.js joi

我正在尝试找到一种方法来使用Joi检查重叠的时间范围,但是在验证时间范围本身有效之后,我却看不到如何做。

我的时间范围架构允许时间部分仅落在小时上,并且“全天”以0的开头和24的结尾指定。

const Joi = require('joi')

const hour_of_day = Joi.number().integer().min(0).max(24)

const time_range = Joi.object().keys({
  start: hour_of_day.required(),
  end: hour_of_day.greater(Joi.ref('start')).required()
})

const day_availability = Joi.object().keys({
  day_of_week: Joi.string().valid([ 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun' ]).required(),
  timeslots: Joi.array().items(time_range).min(1)
})

const test_data = {
  day_of_week: 'mon',
  timeslots: [
    { start: 0, end: 2 },
    { start: 1, end: 3 }
  ]
}

Joi.validate(test_data, day_availability)     

由于时间段重叠,以上操作应会失败,但是当然没有检查重叠的地方。

我在哪里插入Joi插件?

0 个答案:

没有答案