convertModelField()

in django_airavata/apps/api/static/django_airavata_api/js/models/BaseModel.js [79:108]


  convertModelField(modelClass, fieldValue, fieldDefault) {
    if (typeof fieldValue !== "undefined") {
      if (modelClass.prototype instanceof BaseEnum) {
        // When cloning the fieldValue is an enum instance
        if (fieldValue instanceof BaseEnum) {
          return fieldValue;
        }
        let enumValue = null;
        if (typeof fieldValue === "string") {
          // convert by name if type is string
          enumValue = modelClass.byName(fieldValue);
        } else {
          // Otherwise it is an integer that we need to convert to enum
          enumValue = modelClass.byValue(fieldValue);
        }
        if (!enumValue) {
          // enum wasn't found, construct an enum instance from the value
          return new BaseEnum(`Unknown value: ${fieldValue}`, fieldValue);
        } else {
          return enumValue;
        }
      } else if (fieldValue instanceof modelClass) {
        // No conversion necessary, just return the fieldValue
        return fieldValue;
      } else {
        return new modelClass(fieldValue);
      }
    }
    return fieldDefault;
  }