1
0
Fork 0
mirror of synced 2024-07-27 09:06:08 +12:00

Merge pull request #10483 from Budibase/fix/empty-attachment-row-import

Fix for row import failure caused by empty attachment parsing.
This commit is contained in:
Martin McKeaveney 2023-05-05 12:01:04 +01:00 committed by GitHub
commit 1c81cc4b4d
2 changed files with 19 additions and 1 deletions

View file

@ -212,6 +212,7 @@ describe("/rows", () => {
attachmentNull: attachment,
attachmentUndefined: attachment,
attachmentEmpty: attachment,
attachmentEmptyArrayStr: attachment
},
})
@ -239,6 +240,7 @@ describe("/rows", () => {
attachmentNull: null,
attachmentUndefined: undefined,
attachmentEmpty: "",
attachmentEmptyArrayStr: "[]",
}
const id = (await config.createRow(row))._id
@ -268,6 +270,7 @@ describe("/rows", () => {
expect(saved.attachmentNull).toEqual([])
expect(saved.attachmentUndefined).toBe(undefined)
expect(saved.attachmentEmpty).toEqual([])
expect(saved.attachmentEmptyArrayStr).toEqual([])
})
})

View file

@ -1,5 +1,6 @@
// @ts-nocheck
import { FieldTypes } from "../../constants"
import { logging } from "@budibase/backend-core"
/**
* A map of how we convert various properties in rows to each other based on the row type.
@ -67,9 +68,23 @@ export const TYPE_TRANSFORM_MAP: any = {
},
},
[FieldTypes.ATTACHMENT]: {
"": [],
[null]: [],
[undefined]: undefined,
parse: attachments => {
if (typeof attachments === "string") {
if (attachments === "") {
return []
}
let result
try {
result = JSON.parse(attachments)
} catch (e) {
logging.logAlert("Could not parse attachments", e)
}
return result
}
return attachments
},
},
[FieldTypes.BOOLEAN]: {
"": null,