Am attempting to create image and gallery field types, but am having trouble getting the structure right and see no examples in the docs.
Here’s what I’m doing:
const componentImage = await client.fields.create(component.id, {
label: 'Image',
apiKey: 'image',
fieldType: 'file',
hint: 'Square assets work best',
validators: {
extension: 'image',
requiredAltTile: {
alt: true
}
},
appearance: {
editor: 'file',
addons: [],
parameters:{},
},
}).then((field) => {
console.log(field);
})
.catch((error) => {
console.error(error);
});
The error I’m getting is this:
ApiException: 422 INVALID_FIELD (details: {"field":"validators","code":"VALIDATION_INVALID","message":"validators options must be an hash"})
I think you should look into either the file option:
file - Asset upload
- editor:
file
- parameters:
{}
- validators:
-
required : {} make field required.
-
fileSize : an object with minValue , maxValue and minUnit , maxUnit . The units can be B , KB or MB . You can express only minimum values, only maximum values or both.
-
imageDimensions : an object with heightMaxValue , heightMinValue , widthMaxValue widthMinValue expressed in pixels. You can express only minimum values, only maximum values or both.
-
extension : either an object with predefinedList : image or video or document . Otherwise it should be an array of extensions allowed.
-
requiredAltTitle : an object with alt and title attributes that can have true or false values.
or the gallery one:
gallery - Gallery of assets
- editor:
gallery
- parameters:
{}
- validators:
-
required : {} make field required.
-
fileSize : an object with minValue , maxValue and minUnit , maxUnit . The units can be B , KB or MB . You can express only minimum values, only maximum values or both.
-
imageDimensions : an object with heightMaxValue , heightMinValue , widthMaxValue widthMinValue expressed in pixels. You can express only minimum values, only maximum values or both.
-
extension : either an object with predefinedList : image or video or document . Otherwise it should be an array of extensions allowed.
-
requiredAltTitle : an object with alt and title attributes that can have true or false values.
does this help?
Looks like I had two mistakes in my request:
validators: {
extension: {
predefinedList: 'image'
},
requiredAltTitle: {
alt: true,
title: false
}
},
The validator for extension needed to be formatted differently, by supplying the object with predefinedList, and for requiredAltTitle I had to provide the title as well.
1 Like