mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-17 20:50:44 +00:00
Add option to exclude an enum possible value's fields from docs
This commit is contained in:
@ -1477,15 +1477,21 @@ public class GenerateOpenApiSpecAction extends AbstractQActionFunction<GenerateO
|
||||
QPossibleValueSource possibleValueSource = QContext.getQInstance().getPossibleValueSource(field.getPossibleValueSourceName());
|
||||
if(QPossibleValueSourceType.ENUM.equals(possibleValueSource.getType()))
|
||||
{
|
||||
List<String> enumValues = new ArrayList<>();
|
||||
List<String> enumMapping = new ArrayList<>();
|
||||
for(QPossibleValue<?> enumValue : possibleValueSource.getEnumValues())
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// by default, we will list all enum values in the docs - but - a field's api-meta-data object can opt out //
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
if(apiFieldMetaData == null || apiFieldMetaData.getListEnumPossibleValues())
|
||||
{
|
||||
enumValues.add(String.valueOf(enumValue.getId()));
|
||||
enumMapping.add(enumValue.getId() + "=" + enumValue.getLabel());
|
||||
List<String> enumValues = new ArrayList<>();
|
||||
List<String> enumMapping = new ArrayList<>();
|
||||
for(QPossibleValue<?> enumValue : possibleValueSource.getEnumValues())
|
||||
{
|
||||
enumValues.add(String.valueOf(enumValue.getId()));
|
||||
enumMapping.add(enumValue.getId() + "=" + enumValue.getLabel());
|
||||
}
|
||||
fieldSchema.setEnumValues(enumValues);
|
||||
fieldSchema.setDescription(fieldSchema.getDescription() + " Value definitions are: " + StringUtils.joinWithCommasAndAnd(enumMapping));
|
||||
}
|
||||
fieldSchema.setEnumValues(enumValues);
|
||||
fieldSchema.setDescription(fieldSchema.getDescription() + " Value definitions are: " + StringUtils.joinWithCommasAndAnd(enumMapping));
|
||||
}
|
||||
else if(QPossibleValueSourceType.TABLE.equals(possibleValueSource.getType()))
|
||||
{
|
||||
|
@ -39,6 +39,7 @@ public class ApiFieldMetaData
|
||||
|
||||
private String apiFieldName;
|
||||
private String description;
|
||||
private boolean listEnumPossibleValues = true;
|
||||
|
||||
private Boolean isExcluded;
|
||||
private String replacedByFieldName;
|
||||
@ -346,4 +347,35 @@ public class ApiFieldMetaData
|
||||
return (this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Getter for listEnumPossibleValues
|
||||
*******************************************************************************/
|
||||
public boolean getListEnumPossibleValues()
|
||||
{
|
||||
return (this.listEnumPossibleValues);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Setter for listEnumPossibleValues
|
||||
*******************************************************************************/
|
||||
public void setListEnumPossibleValues(boolean listEnumPossibleValues)
|
||||
{
|
||||
this.listEnumPossibleValues = listEnumPossibleValues;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** Fluent setter for listEnumPossibleValues
|
||||
*******************************************************************************/
|
||||
public ApiFieldMetaData withListEnumPossibleValues(boolean listEnumPossibleValues)
|
||||
{
|
||||
this.listEnumPossibleValues = listEnumPossibleValues;
|
||||
return (this);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user