Feb 10, 2021 09:59 PM
Hello,
Is there such thing as a fetch put? I am needing to do a put on an external api with the airtable scripting app. I was wondering what the best way to do it is? The external api is expecting a put method. I have successful used fetch for get and post but can’t seem to figure out the put. Thanks in advance!
Feb 11, 2021 03:52 PM
Without seeing the actual code, this could take many days to debug.
Feb 11, 2021 04:52 PM
I got it working. I had the fetch call in an async function. guess it didn’t like that. thanks for your help!
Feb 12, 2021 02:10 AM
Hi @ALA_Staff ,
@Bill.French is right : thread is publicly shared but Solution’s Code isn’t yet.
Thanks in advance to share the Solution’s Code.
olπ
Feb 12, 2021 03:51 PM
Hello, so when I initially had problems with the put, this was my code.
let options = (httpMethod, body) => {
return {
method: httpMethod,
headers: {
'Content-Type': "application/json",
'api-auth-accountid': "...",
'api-auth-applicationkey': "..."
},
'body': body
}
};
let putUrl = "https://inventory.dearsystems.com/ExternalApi/v2/product";
let checkProductSupplierList = async (prod) => {
// get supplierID to add to product suppliers list
let linkedID = suppliers["linkedRecordIds"][0];
let supplier = supplierRecords.getRecord(linkedID);
let supplierID = supplier.getCellValue("SupplierID")[0];
if (prod["Suppliers"].length === 0) {
prod["Suppliers"] = [{ "SupplierID": supplierID, "DropShip": true }];
prod["DropShipMode"] = "Optional Drop Ship";
let putResults = await remoteFetchAsync(putUrl, options("put", JSON.stringify(prod)));
let putObject = await putResults.json();
console.log("put response", putObject)
}
for (let product of lines) {
if (product["SKU"] === productSku) {
let prod = await getProduct(product["ProductID"]);
prod = prod['Products'][0];
checkProductSupplierList(prod)
}
product["DropShip"] = true;
break;
}
}
What worked was this…
let checkProductSupplierList = (prod) => {
let linkedID = suppliers["linkedRecordIds"][0];
let supplier = supplierRecords.getRecord(linkedID);
let supplierID = supplier.getCellValue("SupplierID")[0];
if (prod["Suppliers"].length === 0) {
prod["Suppliers"] = [{ "SupplierID": supplierID, "DropShip": true }];
prod["DropShipMode"] = "Optional Drop Ship";
return true;
}
return false;
}
for (let product of lines) {
if (product["SKU"] === productSku) {
let prod = await getProduct(product["ProductID"]);
prod = prod['Products'][0];
let putBool = checkProductSupplierList(prod);
if (putBool) {
let putUrl = "https://inventory.dearsystems.com/ExternalApi/v2/product";
let putResults = await remoteFetchAsync(putUrl, options("put", JSON.stringify(prod)));
let jsonObject = await putResults.json();
output.inspect(jsonObject);
}
product["DropShip"] = true;
break;
}
}
Feb 12, 2021 05:03 PM
Thank you very much @ALA_Staff ,
it’s interesting to see Code evolution in relation with this thread,
to understand what was talked about !
olπ