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;
}