visitFieldValidate()

in lib/generator.js [1065:1087]


  visitFieldValidate(fieldValue, fieldName, value, level) {
    const deep = Math.floor(level / 4);
    if (fieldValue.type === 'modelBody' || fieldValue.type === 'moduleModel' || 
    fieldValue.type === 'subModel' || fieldValue.idType === 'model' || 
    (fieldValue.fieldType && (fieldValue.fieldType.type === 'moduleModel' || 
    fieldValue.fieldType.idType === 'model' || fieldValue.fieldType.idType === 'builtin_model'))) {
      if(deep > 1) {
        this.emit(` if ${value}:\n`, level);
      }
      this.emit(`${value}.validate()\n`, level + 2);
    } else if (fieldValue.type === 'array' || fieldValue.fieldType === 'array') {
      this.emit(`for v${deep} in ${value}:\n`, level);
      this.visitFieldValidate(fieldValue.fieldItemType || fieldValue.subType, fieldName, `v${deep}`, level + 2);
    } else if (fieldValue.fieldType === 'map' || fieldValue.type === 'map') {
      this.emit(`for v${deep} in self.${fieldName}.values():\n`, level);
      this.visitFieldValidate(fieldValue.valueType, fieldName, `v${deep}`, level + 2);
    } else {
      if(deep > 1) {
        this.emit(` if ${value}:\n`, level);
      }
      this.emit(`${value}.validate()\n`, level + 2);
    }
  }