58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
export const load = async ({ locals, cookies }) => {
|
|
const { apiURL, apiKey, pb, user } = locals;
|
|
|
|
const getOptionsFlowFeed = async () => {
|
|
// make the POST request to the endpoint
|
|
const response = await fetch(apiURL + "/options-flow-feed", {
|
|
method: "GET",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
"X-API-KEY": apiKey,
|
|
},
|
|
});
|
|
let output = await response.json();
|
|
output = user?.tier !== "Pro" ? output?.slice(0, 6) : output;
|
|
|
|
return output;
|
|
};
|
|
|
|
const getPredefinedCookieRuleOfList = async () => {
|
|
// make the POST request to the endpoint
|
|
const ruleOfList = cookies.get("options-flow-filter-cookie") ?? [];
|
|
const output =
|
|
ruleOfList?.length !== 0
|
|
? JSON.parse(ruleOfList)
|
|
: [
|
|
{ name: "cost_basis", value: "any" },
|
|
{ name: "date_expiration", value: "any" },
|
|
];
|
|
|
|
return output;
|
|
};
|
|
|
|
const getOptionsWatchlist = async () => {
|
|
let output;
|
|
try {
|
|
output = (
|
|
await pb?.collection("optionsWatchlist").getFullList({
|
|
filter: `user="${user?.id}"`,
|
|
})
|
|
)?.at(0);
|
|
if (output === undefined) {
|
|
output = { optionsId: [] };
|
|
}
|
|
} catch (e) {
|
|
//console.log(e)
|
|
output = { optionsId: [] };
|
|
}
|
|
return output;
|
|
};
|
|
|
|
// Make sure to return a promise
|
|
return {
|
|
getOptionsFlowFeed: await getOptionsFlowFeed(),
|
|
getPredefinedCookieRuleOfList: await getPredefinedCookieRuleOfList(),
|
|
getOptionsWatchlist: await getOptionsWatchlist(),
|
|
};
|
|
};
|