migrate to page.server.ts
This commit is contained in:
parent
5def95e8dd
commit
9fedada668
@ -2,6 +2,31 @@ import { error, fail, redirect } from "@sveltejs/kit";
|
|||||||
import { validateData } from "$lib/utils";
|
import { validateData } from "$lib/utils";
|
||||||
import { loginUserSchema, registerUserSchema } from "$lib/schemas";
|
import { loginUserSchema, registerUserSchema } from "$lib/schemas";
|
||||||
|
|
||||||
|
export const load = async ({ locals, setHeaders }) => {
|
||||||
|
const { apiKey, apiURL } = locals;
|
||||||
|
|
||||||
|
const getDashboard = async () => {
|
||||||
|
const response = await fetch(apiURL + "/dashboard-info", {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"X-API-KEY": apiKey,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const output = await response?.json();
|
||||||
|
|
||||||
|
setHeaders({ "cache-control": "public, max-age=300" });
|
||||||
|
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Make sure to return a promise
|
||||||
|
return {
|
||||||
|
getDashboard: await getDashboard(),
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
async function checkDisposableEmail(email) {
|
async function checkDisposableEmail(email) {
|
||||||
const url = `https://disposable.debounce.io/?email=${encodeURIComponent(email)}`;
|
const url = `https://disposable.debounce.io/?email=${encodeURIComponent(email)}`;
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
@ -18,7 +43,7 @@ export const actions = {
|
|||||||
login: async ({ request, locals }) => {
|
login: async ({ request, locals }) => {
|
||||||
const { formData, errors } = await validateData(
|
const { formData, errors } = await validateData(
|
||||||
await request.formData(),
|
await request.formData(),
|
||||||
loginUserSchema,
|
loginUserSchema
|
||||||
);
|
);
|
||||||
|
|
||||||
if (errors) {
|
if (errors) {
|
||||||
@ -52,7 +77,7 @@ export const actions = {
|
|||||||
register: async ({ locals, request }) => {
|
register: async ({ locals, request }) => {
|
||||||
const { formData, errors } = await validateData(
|
const { formData, errors } = await validateData(
|
||||||
await request.formData(),
|
await request.formData(),
|
||||||
registerUserSchema,
|
registerUserSchema
|
||||||
);
|
);
|
||||||
if (errors) {
|
if (errors) {
|
||||||
return fail(400, {
|
return fail(400, {
|
||||||
@ -122,7 +147,7 @@ export const actions = {
|
|||||||
const redirectURL = `${url.origin}/oauth`;
|
const redirectURL = `${url.origin}/oauth`;
|
||||||
|
|
||||||
const targetItem = authMethods.authProviders?.findIndex(
|
const targetItem = authMethods.authProviders?.findIndex(
|
||||||
(item) => item?.name === providerSelected,
|
(item) => item?.name === providerSelected
|
||||||
);
|
);
|
||||||
//console.log("==================")
|
//console.log("==================")
|
||||||
//console.log(authMethods.authProviders)
|
//console.log(authMethods.authProviders)
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
import { getCache, setCache } from "$lib/store";
|
|
||||||
|
|
||||||
export const load = async ({ parent }) => {
|
|
||||||
const { apiKey, apiURL } = await parent();
|
|
||||||
|
|
||||||
const getDashboard = async () => {
|
|
||||||
// Get cached data for the specific tickerID
|
|
||||||
const cachedData = getCache("", "getDashboard");
|
|
||||||
if (cachedData) {
|
|
||||||
return cachedData;
|
|
||||||
} else {
|
|
||||||
const response = await fetch(apiURL + "/dashboard-info", {
|
|
||||||
method: "GET",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
"X-API-KEY": apiKey,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const output = await response?.json();
|
|
||||||
setCache("", output, "getDashboard");
|
|
||||||
return output;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Make sure to return a promise
|
|
||||||
return {
|
|
||||||
getDashboard: await getDashboard(),
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -2,11 +2,79 @@ import { error, fail, redirect } from "@sveltejs/kit";
|
|||||||
import { validateData } from "$lib/utils";
|
import { validateData } from "$lib/utils";
|
||||||
import { loginUserSchema, registerUserSchema } from "$lib/schemas";
|
import { loginUserSchema, registerUserSchema } from "$lib/schemas";
|
||||||
|
|
||||||
|
// Define the EMA parameters to check
|
||||||
|
const emaParameters = ["ema20", "ema50", "ema100", "ema200"];
|
||||||
|
// Function to check and add missing EMA parameters
|
||||||
|
const ensureAllEmaParameters = (params) => {
|
||||||
|
const includedEmaParameters = params.filter((param) =>
|
||||||
|
emaParameters.includes(param)
|
||||||
|
);
|
||||||
|
if (includedEmaParameters.length > 0) {
|
||||||
|
emaParameters.forEach((param) => {
|
||||||
|
if (!params.includes(param)) {
|
||||||
|
params.push(param);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const load = async ({ locals }) => {
|
||||||
|
const { apiURL, apiKey, fastifyURL, user } = locals;
|
||||||
|
|
||||||
|
const getAllStrategies = async () => {
|
||||||
|
const postData = { userId: user?.id };
|
||||||
|
const response = await fetch(fastifyURL + "/all-strategies", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(postData),
|
||||||
|
});
|
||||||
|
|
||||||
|
const output = (await response.json())?.items;
|
||||||
|
|
||||||
|
output?.sort((a, b) => new Date(b?.updated) - new Date(a?.updated));
|
||||||
|
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getStockScreenerData = async () => {
|
||||||
|
const strategyList = await getAllStrategies();
|
||||||
|
|
||||||
|
const strategy = strategyList?.at(0);
|
||||||
|
let getRuleOfList = strategy?.rules?.map((item) => item?.name) || [];
|
||||||
|
|
||||||
|
// Ensure all required EMA parameters are included
|
||||||
|
ensureAllEmaParameters(getRuleOfList);
|
||||||
|
|
||||||
|
const postData = { ruleOfList: getRuleOfList };
|
||||||
|
// make the POST request to the endpoint
|
||||||
|
const response = await fetch(apiURL + "/stock-screener-data", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"X-API-KEY": apiKey,
|
||||||
|
},
|
||||||
|
body: JSON.stringify(postData),
|
||||||
|
});
|
||||||
|
|
||||||
|
const output = await response.json();
|
||||||
|
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Make sure to return a promise
|
||||||
|
return {
|
||||||
|
getStockScreenerData: await getStockScreenerData(),
|
||||||
|
getAllStrategies: await getAllStrategies(),
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export const actions = {
|
export const actions = {
|
||||||
login: async ({ request, locals }) => {
|
login: async ({ request, locals }) => {
|
||||||
const { formData, errors } = await validateData(
|
const { formData, errors } = await validateData(
|
||||||
await request.formData(),
|
await request.formData(),
|
||||||
loginUserSchema,
|
loginUserSchema
|
||||||
);
|
);
|
||||||
|
|
||||||
if (errors) {
|
if (errors) {
|
||||||
@ -40,7 +108,7 @@ export const actions = {
|
|||||||
register: async ({ locals, request }) => {
|
register: async ({ locals, request }) => {
|
||||||
const { formData, errors } = await validateData(
|
const { formData, errors } = await validateData(
|
||||||
await request.formData(),
|
await request.formData(),
|
||||||
registerUserSchema,
|
registerUserSchema
|
||||||
);
|
);
|
||||||
|
|
||||||
if (errors) {
|
if (errors) {
|
||||||
@ -94,7 +162,7 @@ await locals.pb?.collection('users').update(
|
|||||||
const redirectURL = `${url.origin}/oauth`;
|
const redirectURL = `${url.origin}/oauth`;
|
||||||
|
|
||||||
const targetItem = authMethods.authProviders?.findIndex(
|
const targetItem = authMethods.authProviders?.findIndex(
|
||||||
(item) => item?.name === providerSelected,
|
(item) => item?.name === providerSelected
|
||||||
);
|
);
|
||||||
//console.log("==================")
|
//console.log("==================")
|
||||||
//console.log(authMethods.authProviders)
|
//console.log(authMethods.authProviders)
|
||||||
|
|||||||
@ -1,83 +0,0 @@
|
|||||||
import { getCache, setCache } from "$lib/store";
|
|
||||||
|
|
||||||
// Define the EMA parameters to check
|
|
||||||
const emaParameters = ["ema20", "ema50", "ema100", "ema200"];
|
|
||||||
// Function to check and add missing EMA parameters
|
|
||||||
const ensureAllEmaParameters = (params) => {
|
|
||||||
const includedEmaParameters = params.filter((param) =>
|
|
||||||
emaParameters.includes(param),
|
|
||||||
);
|
|
||||||
if (includedEmaParameters.length > 0) {
|
|
||||||
emaParameters.forEach((param) => {
|
|
||||||
if (!params.includes(param)) {
|
|
||||||
params.push(param);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const load = async ({ parent }) => {
|
|
||||||
const { apiURL, apiKey, fastifyURL, user } = await parent();
|
|
||||||
|
|
||||||
const getAllStrategies = async () => {
|
|
||||||
const postData = { userId: user?.id };
|
|
||||||
const response = await fetch(fastifyURL + "/all-strategies", {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
},
|
|
||||||
body: JSON.stringify(postData),
|
|
||||||
});
|
|
||||||
|
|
||||||
const output = (await response.json())?.items;
|
|
||||||
|
|
||||||
output?.sort((a, b) => new Date(b?.updated) - new Date(a?.updated));
|
|
||||||
|
|
||||||
//console.log(output);
|
|
||||||
|
|
||||||
return output;
|
|
||||||
};
|
|
||||||
|
|
||||||
const getStockScreenerData = async () => {
|
|
||||||
let output;
|
|
||||||
const strategyList = await getAllStrategies();
|
|
||||||
|
|
||||||
const strategy = strategyList?.at(0);
|
|
||||||
let getRuleOfList = strategy?.rules?.map((item) => item?.name) || [];
|
|
||||||
|
|
||||||
// Ensure all required EMA parameters are included
|
|
||||||
ensureAllEmaParameters(getRuleOfList);
|
|
||||||
|
|
||||||
const ruleNames = getRuleOfList.sort().join(",");
|
|
||||||
|
|
||||||
// Get cached data for the specific tickerID
|
|
||||||
const cachedData = getCache(ruleNames, "getStockScreenerData");
|
|
||||||
if (cachedData) {
|
|
||||||
output = cachedData;
|
|
||||||
} else {
|
|
||||||
const postData = { ruleOfList: getRuleOfList };
|
|
||||||
// make the POST request to the endpoint
|
|
||||||
const response = await fetch(apiURL + "/stock-screener-data", {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
"X-API-KEY": apiKey,
|
|
||||||
},
|
|
||||||
body: JSON.stringify(postData),
|
|
||||||
});
|
|
||||||
|
|
||||||
output = await response.json();
|
|
||||||
|
|
||||||
// Cache the data for this specific tickerID with a specific name 'getStockScreenerData'
|
|
||||||
setCache(ruleNames, output, "getStockScreenerData");
|
|
||||||
}
|
|
||||||
|
|
||||||
return output;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Make sure to return a promise
|
|
||||||
return {
|
|
||||||
getStockScreenerData: await getStockScreenerData(),
|
|
||||||
getAllStrategies: await getAllStrategies(),
|
|
||||||
};
|
|
||||||
};
|
|
||||||
Loading…
x
Reference in New Issue
Block a user