import { renderTable } from "https://esm.town/v/metart43/renderTable";
import { fetch } from "https://esm.town/v/std/fetch";
import process from "node:process";
export const htmlExample = async () => {
const url =
"https://api.octopus.energy/v1/products/AGILE-FLEX-22-11-25/electricity-tariffs/E-1R-AGILE-FLEX-22-11-25-C/standard-unit-rates/";
try {
const response = await fetch(url, {
headers: {
"Authorization": "Basic " + btoa(process.env.OCTOPUS_ENERGY_API_KEY || ""),
},
});
const data = await response.json();
const rates = data.results;
const processedData = rates.map((rate) => ({
date: rate.valid_from,
value: rate.value_inc_vat,
}));
function filterDataForDate(data, date) {
return data.filter((d) => {
const entryDate = new Date(d.date).toISOString().split("T")[0];
return entryDate === date;
});
}
const todaysDate = new Date().toISOString().split("T")[0];
const todaysRates = filterDataForDate(processedData, todaysDate);
console.log({ todaysRates });
const graph = renderTable(todaysRates);
return new Response(graph, {
headers: {
"Content-Type": "text/html",
},
});
} catch (e) {
console.error("error getting rates", e.message);
return new Response("Error retrieving data", { status: 500 });
}
};