mirror of
https://github.com/sergeyyarkov/yarkov.tech.git
synced 2026-10-11 18:39:14 +03:00
some refactor
This commit is contained in:
parent
1f8c01ffd6
commit
bafc12487e
@ -1,16 +1,9 @@
|
|||||||
import { Handler } from "@netlify/functions";
|
import { Handler } from "@netlify/functions";
|
||||||
|
import { redisClient } from "../../redis";
|
||||||
import Redis from "ioredis";
|
|
||||||
|
|
||||||
const redis = new Redis({
|
|
||||||
host: process.env.REDIS_HOST,
|
|
||||||
port: Number.parseInt(process.env.REDIS_PORT || "6379", 10),
|
|
||||||
password: process.env.REDIS_PASSWORD,
|
|
||||||
});
|
|
||||||
|
|
||||||
const getViewsBySlug = async (slug: string): Promise<number> => {
|
const getViewsBySlug = async (slug: string): Promise<number> => {
|
||||||
let views = 1;
|
let views = 1;
|
||||||
const data = await redis.get(`views:${slug}`);
|
const data = await redisClient.get(`views:${slug}`);
|
||||||
if (data) views = Number.parseInt(data, 10);
|
if (data) views = Number.parseInt(data, 10);
|
||||||
if (Number.isNaN(views)) views = 1;
|
if (Number.isNaN(views)) views = 1;
|
||||||
return views;
|
return views;
|
||||||
@ -27,7 +20,7 @@ const handler: Handler = async (event) => {
|
|||||||
}
|
}
|
||||||
case "POST": {
|
case "POST": {
|
||||||
if (!slug) return { statusCode: 400, body: "Bad request." };
|
if (!slug) return { statusCode: 400, body: "Bad request." };
|
||||||
const views = await redis.incr(`views:${slug}`);
|
const views = await redisClient.incr(`views:${slug}`);
|
||||||
return { statusCode: 200, body: views.toString() };
|
return { statusCode: 200, body: views.toString() };
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
|
|||||||
9
redis.ts
Normal file
9
redis.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import Redis from "ioredis";
|
||||||
|
|
||||||
|
const redisClient = new Redis({
|
||||||
|
host: process.env.REDIS_HOST,
|
||||||
|
port: Number.parseInt(process.env.REDIS_PORT || "6379", 10),
|
||||||
|
password: process.env.REDIS_PASSWORD,
|
||||||
|
});
|
||||||
|
|
||||||
|
export { redisClient };
|
||||||
@ -46,14 +46,16 @@ export function fetchTranslatedArticles(Astro: Readonly<AstroGlobal>): MDXInstan
|
|||||||
return utils.getPublishedArticles(articles);
|
return utils.getPublishedArticles(articles);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function fetchAboutMe(Astro: Readonly<AstroGlobal>): Promise<MDXInstance<{}>> {
|
export async function fetchAboutMe(Astro: Readonly<AstroGlobal>): Promise<MDXInstance<Record<string, never>>> {
|
||||||
const lang = getLanguageFromURL(Astro.url.pathname);
|
const lang = getLanguageFromURL(Astro.url.pathname);
|
||||||
let markdown: MDXInstance<{}> | undefined;
|
let markdown: MDXInstance<Record<string, never>> | undefined;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<{}>;
|
markdown = (await import(`../../content/about/${lang}/index.mdx`)) as MDXInstance<Record<string, never>>;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<{}>;
|
markdown = (await import(`../../content/about/${DEFAULT_LANGUAGE}/index.mdx`)) as MDXInstance<
|
||||||
|
Record<string, never>
|
||||||
|
>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return markdown;
|
return markdown;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user