Home Reference Source Repository

js/models/validator.js

import API from 'api';
import moment from 'moment'
import tv4 from 'tv4';
import Vue from 'vue';


for (let key of Object.keys(API.definitions)) {
    let schema = API.definitions[key];
    tv4.addSchema('#/definitions/' + key, schema);
}

tv4.addFormat({
    date: function(data, schema) {
        var m = moment(data, 'YYYY-MM-DD'),
            flags = m.parsingFlags();

        if (!m.isValid() || (flags.unusedInput + flags.unusedTokens).length) {
            return Vue._('Unsupported ISO-8601 date format');
        }
    },
    'date-time': function(data, schema) {
        if (!moment(data, moment.ISO_8601).isValid()) {
            return Vue._('Unsupported ISO-8601 date-time format');
        }
    }
});


export default tv4;