in src/lib/salesforceAuthenticator.ts [55:96]
async uploadDocument(
path: string,
folder: Folder,
description: string,
body?: S3.Body,
) {
// build a little json
const message = {
Description: description,
Keywords: 'fulfilment',
FolderId: folder.folderId,
Name: path,
Type: 'csv',
};
// don't try to make the form with a stream from s3 or by appending form sections
const form = {
entity_document: {
value: JSON.stringify(message),
options: {
contentType: 'application/json',
},
},
Body: {
value: body,
options: { contentType: 'text/csv', filename: path },
},
};
const url = '/services/data/v54.0/sobjects/Document/'; // NOT FOR UPDATING
const uploadResult = await this.post(url, form);
const parsed = JSON.parse(uploadResult);
if (parsed.id == null) {
throw new NamedError('Upload failed', 'Upload did not return an id');
}
const id = parsed.id;
return {
id: id,
url: `${this.url}/${id}`,
};
}