From d36a3237881134729c523b84955d51dbc39e1760 Mon Sep 17 00:00:00 2001 From: MuslemRahimi Date: Wed, 18 Sep 2024 22:42:35 +0200 Subject: [PATCH] add historical options flow endpoint --- .../shadcn/calendar/calendar-day.svelte | 2 +- .../shadcn/calendar/calendar.svelte | 1 + src/lib/store.ts | 243 +++++++++--------- .../api/options-historical-flow/+server.ts | 27 ++ src/routes/options-flow/+page.svelte | 89 +++++-- 5 files changed, 213 insertions(+), 149 deletions(-) create mode 100644 src/routes/api/options-historical-flow/+server.ts diff --git a/src/lib/components/shadcn/calendar/calendar-day.svelte b/src/lib/components/shadcn/calendar/calendar-day.svelte index 3b81d8ff..e83b870c 100644 --- a/src/lib/components/shadcn/calendar/calendar-day.svelte +++ b/src/lib/components/shadcn/calendar/calendar-day.svelte @@ -21,7 +21,7 @@ "h-9 w-9 p-0 font-normal ", "[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground", // Selected - "data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary data-[selected]:hover:text-primary-foreground data-[selected]:focus:bg-primary data-[selected]:focus:text-primary-foreground data-[selected]:opacity-100", + "data-[selected]:bg-[#262626] data-[selected]:text-white data-[selected]:hover:bg-[#262626] data-[selected]:hover:text-white data-[selected]:focus:bg-[#262626] data-[selected]:focus:text-white data-[selected]:opacity-100", // Disabled "data-[disabled]:text-muted-foreground data-[disabled]:opacity-50", // Unavailable diff --git a/src/lib/components/shadcn/calendar/calendar.svelte b/src/lib/components/shadcn/calendar/calendar.svelte index 663c00bf..beeae592 100644 --- a/src/lib/components/shadcn/calendar/calendar.svelte +++ b/src/lib/components/shadcn/calendar/calendar.svelte @@ -13,6 +13,7 @@ let className: $$Props["class"] = undefined; export { className as class }; + { const timestamp = Date.now(); - clientSideCache.update(cache => { + clientSideCache.update((cache) => { return { ...cache, [key]: { ...cache[key], - [name]: { data, timestamp } - } + [name]: { data, timestamp }, + }, }; }); }; @@ -23,7 +22,7 @@ export const setCache = (key, data, name) => { // Function to get cache data for a specific key export const getCache = (key, name) => { let cacheData; - clientSideCache.subscribe(cache => { + clientSideCache.subscribe((cache) => { const entry = cache[key]?.[name]; if (entry) { const { data, timestamp } = entry; @@ -44,156 +43,146 @@ export const clearCache = () => { clientSideCache.set({}); }; +export const showCookieConsent = writable(false); -export const showCookieConsent = writable((false)); +export const executiveClicked = writable(false); +export const secFilingsClicked = writable(false); +export const discordMembers = writable(308); -export const executiveClicked = writable((false)); -export const secFilingsClicked = writable((false)); +export const newAvatar = writable(""); -export const discordMembers = writable( (308)); +export const displayCompanyName = writable(""); +export const currentPrice = writable(0); +export const currentPortfolioPrice = writable(0); +export const realtimePrice = writable(0); -export const newAvatar = writable( ("")); +export const priceIncrease = writable(false); +export const isCrosshairMoveActive = writable(true); -export const displayCompanyName = writable( ("")); -export const currentPrice = writable( (0)); -export const currentPortfolioPrice = writable( (0)); -export const realtimePrice = writable( (0)); +export const twitchStatus = writable(false); -export const priceIncrease = writable((false)); -export const isCrosshairMoveActive = writable((true)); +export const screenWidth = writable(0); -export const twitchStatus = writable((false)); +export const globalForm = writable(>[]); -export const screenWidth = writable( (0)); +export const trendingList = writable(>[]); -export const globalForm = writable(> []); +export const userRegion = writable(""); +export const loginData = writable({}); -export const trendingList = writable(> []); +export const replyCommentClicked = writable({}); +export const editCommentClicked = writable({}); -export const userRegion = writable( ("")); +export const fundamentalAnalysisComponent = writable(false); +export const priceAnalysisComponent = writable(false); +export const revenueSegmentationComponent = writable(false); +export const trendAnalysisComponent = writable(false); +export const shareStatisticsComponent = writable(false); +export const shareholderComponent = writable(false); +export const retailVolumeComponent = writable(false); +export const darkPoolComponent = writable(false); +export const enterpriseComponent = writable(false); +export const varComponent = writable(false); +export const sentimentComponent = writable(false); +export const analystEstimateComponent = writable(false); +export const marketMakerComponent = writable(false); +export const optionComponent = writable(false); +export const clinicalTrialComponent = writable(false); +export const failToDeliverComponent = writable(false); +export const borrowedShareComponent = writable(false); +export const impliedVolatilityComponent = writable(false); +export const optionsNetFlowComponent = writable(false); +export const governmentContractComponent = writable(false); +export const analystInsightComponent = writable(false); +export const swapComponent = writable(false); +export const taRatingComponent = writable(false); +export const dcfComponent = writable(false); +export const correlationComponent = writable(false); +export const corporateLobbyingComponent = writable(false); -export const loginData = writable(({})); +export const strategyId = writable(""); +export const articleId = writable(""); -export const replyCommentClicked = writable(({})); -export const editCommentClicked = writable(({})); +export const traded = writable(false); -export const fundamentalAnalysisComponent = writable((false)); -export const priceAnalysisComponent = writable((false)); -export const revenueSegmentationComponent = writable((false)); -export const trendAnalysisComponent = writable((false)); -export const shareStatisticsComponent = writable((false)); -export const shareholderComponent = writable((false)); -export const retailVolumeComponent = writable((false)); -export const darkPoolComponent = writable((false)); -export const enterpriseComponent = writable((false)); -export const varComponent = writable((false)); -export const sentimentComponent = writable((false)); -export const analystEstimateComponent = writable((false)); -export const marketMakerComponent = writable((false)); -export const optionComponent = writable((false)); -export const clinicalTrialComponent = writable((false)); -export const failToDeliverComponent= writable((false)); -export const borrowedShareComponent= writable((false)); -export const impliedVolatilityComponent= writable((false)); -export const optionsNetFlowComponent= writable((false)); -export const governmentContractComponent= writable((false)); -export const analystInsightComponent= writable((false)); -export const swapComponent= writable((false)); -export const taRatingComponent= writable((false)); -export const dcfComponent= writable((false)); -export const correlationComponent = writable((false)); -export const corporateLobbyingComponent = writable((false)); +export const previousPage = writable(""); +export const oauthState = writable(""); +export const oauthVerifier = writable(""); +export const oauthProvider = writable(""); -export const strategyId = writable( ("")); -export const articleId = writable( ("")); +export const switchWatchList = writable(false); -export const traded = writable((false)); +export const cachedPosts = writable(>{}); +export const currentPagePosition = writable(0); +export const postVote = writable(>{}); -export const previousPage = writable( ("")); +export const similarTickerClicked = writable(false); -export const oauthState = writable( ("")); -export const oauthVerifier = writable( ("")); -export const oauthProvider = writable( ("")); - - -export const switchWatchList = writable((false)); - -export const cachedPosts = writable(> {}); -export const currentPagePosition = writable( (0)); -export const postVote = writable(> {}); - -export const similarTickerClicked = writable((false)); - -export const isScrollingUp = writable((true)); -export const isWeekend = writable((false)); -export const isBeforeMarketOpen = writable((false)); -export const isAfterMarketClose = writable((false)); -export const isOpen = writable((false)); - - -export const commentIdDeleted = writable( ("")); -export const postIdDeleted = writable( ("")); -export const commentAdded = writable( ("")); -export const commentUpdated = writable( ("")); -export const scrollToComment = writable( ("")); +export const isScrollingUp = writable(true); +export const isWeekend = writable(false); +export const isBeforeMarketOpen = writable(false); +export const isAfterMarketClose = writable(false); +export const isOpen = writable(false); +export const commentIdDeleted = writable(""); +export const postIdDeleted = writable(""); +export const commentAdded = writable(""); +export const commentUpdated = writable(""); +export const scrollToComment = writable(""); export const searchBarData = writable([]); -export const stockTicker = writable( ("")); -export const etfTicker = writable( ("")); -export const cryptoTicker = writable( ("")); -export const assetType = writable( ("")); +export const stockTicker = writable(""); +export const etfTicker = writable(""); +export const cryptoTicker = writable(""); +export const assetType = writable(""); -export const hedgeFundsCIK = writable( ("")); +export const hedgeFundsCIK = writable(""); -export const linkTitle = writable( ("")); +export const linkTitle = writable(""); -export const numberOfUnreadNotification = writable( (0)); +export const numberOfUnreadNotification = writable(0); -export const openPriceAlert = writable((false)); +export const openPriceAlert = writable(false); -export const sidebarOpen = writable((false)); -export const sidebarExpanded = writable((true)); -export const sidebarOpenField = writable((false)); +export const sidebarOpen = writable(false); +export const sidebarExpanded = writable(true); +export const sidebarOpenField = writable(false); - -export const tagList = writable( [ - - { - name: "Meme", - color: '#105488', - }, - { - name: "News", - color: '#c78900', - }, - { - name: "Discussion", - color: '#800080', - }, - { - name: "Gain", - color: '#19c41d', - }, - { - name: "Loss", - color: '#FF0000', - }, - { - name: 'Chart', - color: '#FF4500', - }, - { - name: 'DD', - color: '#365B8C', - }, - { - name: 'YOLO', - color: '#56B6DF', - } +export const tagList = writable([ + { + name: "Meme", + color: "#105488", + }, + { + name: "News", + color: "#c78900", + }, + { + name: "Discussion", + color: "#800080", + }, + { + name: "Gain", + color: "#19c41d", + }, + { + name: "Loss", + color: "#FF0000", + }, + { + name: "Chart", + color: "#FF4500", + }, + { + name: "DD", + color: "#365B8C", + }, + { + name: "YOLO", + color: "#56B6DF", + }, ]); - diff --git a/src/routes/api/options-historical-flow/+server.ts b/src/routes/api/options-historical-flow/+server.ts new file mode 100644 index 00000000..d5b1d212 --- /dev/null +++ b/src/routes/api/options-historical-flow/+server.ts @@ -0,0 +1,27 @@ +import type { RequestHandler } from "./$types"; + +export const POST: RequestHandler = async ({ request, locals }) => { + const data = await request.json(); + const selectedDate = data?.selectedDate; + const { apiURL, apiKey } = locals; + let output; + + try { + const postData = { date: selectedDate }; + const response = await fetch(apiURL + "/options-historical-flow", { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-API-KEY": apiKey, + }, + body: JSON.stringify(postData), + }); + + output = await response.json(); + } catch (e) { + console.error(e); + output = []; + } + + return new Response(JSON.stringify(output)); +}; diff --git a/src/routes/options-flow/+page.svelte b/src/routes/options-flow/+page.svelte index 72b8c378..131394ed 100644 --- a/src/routes/options-flow/+page.svelte +++ b/src/routes/options-flow/+page.svelte @@ -1,6 +1,6 @@