I’m trying to update a base every 24 hours hitting a public API using remoteFetchAsync().
When I run the automation code below, I get this error:
ERROR
ReferenceError: remoteFetchAsync is not defined
at on line 24
at main on line 9
The automation:
//output.markdown ("# Updating BTC price");
let table = base.getTable ("Fetch"),
records = await table.selectRecordsAsync ();
//Check difficulty
await Promise.all (
records.records.map (async record => {
let stock = record.getCellValue ("Ticker");
if (! stock) {
//output.text ("Can't update the price without Ticker");
return;
}
//output.text (`Updating Mining Difficulty of ${stock}...`);
// make request to BTC.com
var response = await remoteFetchAsync (
`https://chain.api.btc.com/v3/block/latest`
).then (r => r.json ());
// Parse by hand
var data= response.data;
var diff= data.difficulty;
// print fetched data
//output.markdown (`${stock}'s Difficulty right now is: **${diff}**`)
// update record in table
return await table.updateRecordAsync (record, {
"Difficulty": diff
});
})
);
//Check Price
await Promise.all (
records.records.map(async record => {
let coin = record.getCellValue("coin");
if (!coin) {
//output.text("Can't update without the name of coin...");
return;
}
output.text(`Updating price of ${coin}`);
// make request
var requestResult = await remoteFetchAsync(
`https://api.coingecko.com/api/v3/simple/price?ids=${coin}&vs_currencies=usd`).then(r => r.json());
// print fetched data
const price = ((requestResultlcoin] || {}).usd);
output.markdown(`${coin}'s price right now is: **$${price}**`)
// update record in table
return await table.updateRecordAsync(record, {
"Price": price,
});
})
);
//output.markdown ("# Done!");
As a Script (that I have to run manually), it runs exactly as above. The only difference between the two codes is that output.markdown() is not commented.
What am I missing?