export const load = async ({ locals, params }) => { const { apiURL, apiKey, user } = locals; const ticker = params.tickerID; if (!ticker) { return { error: 'Invalid ticker ID' }; } // Define the endpoints you want to fetch in bulk const endpoints = [ "/analyst-ticker-history", "/analyst-estimate", "/analyst-insight", "/top-analyst-summary-rating" ]; // Prepare the payload for the bulk request const postData = { ticker, endpoints }; try { const response = await fetch(`${apiURL}/bulk-data`, { method: "POST", headers: { "Content-Type": "application/json", "X-API-KEY": apiKey, }, body: JSON.stringify(postData), }); if (!response.ok) { throw new Error("Failed to fetch bulk data"); } const bulkData = await response.json(); // Process analyst ticker history: if user isn't Pro, limit to 6 items let analystTickerHistory = bulkData["/analyst-ticker-history"]; if (user?.tier !== "Pro" && Array.isArray(analystTickerHistory)) { analystTickerHistory = analystTickerHistory.slice(0, 6); } return { getAnalystTickerHistory: analystTickerHistory, getAnalystEstimate: bulkData["/analyst-estimate"], getAnalystInsight: bulkData["/analyst-insight"], getTopAnalystSummary: bulkData["/top-analyst-summary-rating"], }; } catch (error) { return { error: "Failed to load data" }; } };