The DurationInRangeValidator
checks input for an ISO-8601 duration format that it is within min
and max
values.
This validator can be used on any slot or entity that takes ISO-8601 duration format input.
Examples:
- Alexa:
AMAZON.DURATION
(ex: SCHEDULED_RELATIVE Reminders)
The constructor takes in values for minDuration
and maxDuration
with these default values:
- minDuration: 'PT1H'
- maxDuration: 'P30D'
//TypeScript
import { DurationInRangeValidator } from "jovo-community-validators";
async MyIntent() {
// input: this.$inputs.duration
const schema = {
duration: [
new DurationInRangeValidator(), // default values
// new DurationInRangeValidator('PT1H', 'PT8H'), // 1 to 8 hours
],
};
const validation = this.validate(schema);
// validation fail
if (validation.failed('duration', 'DurationInRangeValidator')) {
//return this.ask...
}
// validation success
}
//JavaScript
const { DurationInRangeValidator } = require('jovo-community-validators');
async MyIntent() {
// input: this.$inputs.duration
const schema = {
duration: [
new DurationInRangeValidator(), // default values
// new DurationInRangeValidator('PT1H', 'PT8H'), // 1 to 8 hours
],
};
const validation = this.validate(schema);
// validation fail
if (validation.failed('duration', 'DurationInRangeValidator')) {
//return this.ask...
}
// validation success
}