I think I am nearly there with this but it only updates 1 record:
const imageAttachment = base.getTable("Pre Mock Prod (PB)");
const recordid = input.config()["recordid"];
const recordToUpdate = await imageAttachment.selectRecordAsync(recordid);
let title = recordToUpdate?.getCellValue("mockup_id");
let imageField = recordToUpdate?.getCellValue("mockUpFiles");
let newImageField = [];
if (imageField) {
for (let [imageNumber, image] of imageField.entries()) {
console.log(image, imageNumber);
let findExtension = image.filename.match(/\w+_\d+\.\w+$/) || [""];
let extension = findExtension[0];
console.log(extension);
let fileSpecificName = imageNumber > 0 ? "-" + (imageNumber) : "";
newImageField.push({
url: image.url,
filename: title + fileSpecificName + extension
});
}
console.log("New Image Field Array", newImageField);
await imageAttachment.updateRecordsAsync([{
id: recordid,
fields: {
mockUpFiles: newImageField
}
}]);
}
This is as close as I can get. If someone could let me know how to edit the code so that the file name is renamed as it is created or updated that would be great. Currently, this only works if I update the record which isn't ideal:
const imageAttachment = base.getTable("Pre Mock Prod (PB)");
const recordid = input.config()["recordid"];
const recordToUpdate = await imageAttachment.selectRecordAsync(recordid);
let title = recordToUpdate?.getCellValue("mockup_id");
let imageField = recordToUpdate?.getCellValue("mockUpFiles");
let newImageField = [];
if (imageField) {
for (let [imageNumber, image] of imageField.entries()) {
console.log(image, imageNumber);
let findExtension = image.filename.match(/\w+_\d+\.\w+$/) || [""];
let extension = findExtension[0];
console.log(extension);
let fileSpecificName = imageNumber > 0 ? "-" + (imageNumber) : "";
newImageField.push({
url: image.url,
filename: title + fileSpecificName + extension
});
}
console.log("New Image Field Array", newImageField);
await imageAttachment.updateRecordsAsync([{
id: recordid,
fields: {
mockUpFiles: newImageField
}
}]);
}