Skip to content

Commit

Permalink
feat: improve stats app resiliency
Browse files Browse the repository at this point in the history
  • Loading branch information
forbesus committed Sep 25, 2024
1 parent c725d55 commit 6d555d5
Show file tree
Hide file tree
Showing 3 changed files with 420 additions and 309 deletions.
67 changes: 55 additions & 12 deletions apps/api/src/routes/v1/dashboardData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,22 +144,65 @@ const route = createRoute({
});

export default new OpenAPIHono().openapi(route, async c => {
const chainStatsQuery = await getChainStats();
const dashboardData = await getDashboardData();
const networkCapacity = await getNetworkCapacity();
const networkCapacityStats = await getProviderGraphData("count");
const latestBlocks = await getBlocks(5);
const latestTransactions = await getTransactions(5);

const chainStats = {
height: latestBlocks[0]?.height ?? null,
transactionCount: latestBlocks[0]?.totalTransactionCount ?? null,
...chainStatsQuery,
};
let chainStats;
let now;
let compare;
let networkCapacity;
let networkCapacityStats;
let latestBlocks;
let latestTransactions;

try {
const chainStatsQuery = await getChainStats();
chainStats = { ...chainStatsQuery };
} catch (error) {
chainStats = {}
console.error("Failed to fetch getChainStats:", error);
}

try {
const dashboardData = await getDashboardData();
now = dashboardData.now;
compare = dashboardData.compare;
} catch (error) {
console.error("Failed to fetch dashboardData:", error);
}


try {
networkCapacity = await getNetworkCapacity();
} catch (error) {
console.error("Failed to fetch networkCapacity:", error);
}

try {
networkCapacityStats = await getProviderGraphData("count");
} catch (error) {
console.error("Failed to fetch networkCapacityStats:", error);
}

try {
latestBlocks = await getBlocks(5);
chainStats = {
...chainStats,
height: latestBlocks[0]?.height ?? null,
transactionCount: latestBlocks[0]?.totalTransactionCount ?? null,
}
} catch (error) {
console.error("Failed to fetch latestBlocks:", error);
}

try {
latestTransactions = await getTransactions(5);
} catch (error) {
console.error("Failed to fetch latestTransactions:", error);
}

return c.json({
chainStats,
...dashboardData,
now,
compare,
networkCapacity,
networkCapacityStats,
latestBlocks,
Expand Down
Loading

0 comments on commit 6d555d5

Please sign in to comment.