private static Collection<FormParameter> transformUploadDefinitions(final Collection<UploadDefinition> uploadDefinitions) { Collection<FormParameter> parameters = new ArrayList<>(); for (UploadDefinition uploadDefinition : uploadDefinitions) { uploadDefinition.getComponentFields().forEach(uploadFieldDefinition -> parameters.add(new FormParameter() .name(uploadDefinition.getFormat() + "." + uploadFieldDefinition.getName()) .type(uploadFieldDefinition.getType().name().toLowerCase()) .description(uploadDefinition.getFormat() + " " + uploadFieldDefinition.getDisplayName()))); for (int i = 1; i <= (uploadDefinition.isMultipleUpload() ? 3 : 1); i++) { String assetIndex = uploadDefinition.isMultipleUpload() ? Integer.toString(i) : ""; String assetName = uploadDefinition.getFormat() + ".asset" + assetIndex; String assetDisplayName = uploadDefinition.getFormat() + " Asset " + assetIndex; parameters.add(new FormParameter() .name(assetName) .type("file") .description(assetDisplayName)); uploadDefinition.getAssetFields().forEach(uploadFieldDefinition -> parameters.add(new FormParameter() .name(assetName + "." + uploadFieldDefinition.getName()) .type(uploadFieldDefinition.getType().name().toLowerCase()) .description(assetDisplayName + " " + uploadFieldDefinition.getDisplayName()))); } } return parameters; } }
/** * Build a {@link FormParameter} Swagger object defined by {@link ApiImplicitParam} * to use for documentation. * * @param apiParam The annotation which documents the parameter. * @return The {@link FormParameter} object to be used in {@link Swagger} */ public static FormParameter formParameter(ApiImplicitParam apiParam) { return new FormParameter() .name(apiParam.name()) .description(apiParam.value()) .required(apiParam.required()) .type(apiParam.dataType()); }
.description(FORM_PARAM_VALUE) .required(false) .type(SwaggerDocumentation.DataTypes.DATA_TYPE_STRING);