mirror of
https://github.com/journey-ad/Bitmagnet-Next-Web
synced 2024-11-22 01:51:23 +00:00
⚡ Caching time
This commit is contained in:
parent
3a88b39e3b
commit
3b2007de8d
@ -88,5 +88,11 @@
|
|||||||
"next": ["const", "let", "var"]
|
"next": ["const", "let", "var"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"prettier/prettier": [
|
||||||
|
"warn",
|
||||||
|
{
|
||||||
|
"endOfLine": "auto"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 158 KiB |
@ -26,7 +26,7 @@ const query = gql`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
// Function to handle GET requests
|
// Function to handle GET requests
|
||||||
export async function GET(request: Request) {
|
const handler = async(request: Request) => {
|
||||||
const { searchParams } = new URL(request.url);
|
const { searchParams } = new URL(request.url);
|
||||||
const hash = searchParams.get("hash");
|
const hash = searchParams.get("hash");
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ export async function GET(request: Request) {
|
|||||||
if (!hash) {
|
if (!hash) {
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
message: "hash is required",
|
message: "`hash` is required",
|
||||||
status: 400,
|
status: 400,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -76,3 +76,5 @@ export async function GET(request: Request) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export { handler as GET, handler as POST };
|
||||||
|
@ -57,7 +57,7 @@ const schema = z.object({
|
|||||||
withTotalCount: z.coerce.boolean().default(false),
|
withTotalCount: z.coerce.boolean().default(false),
|
||||||
});
|
});
|
||||||
|
|
||||||
export async function GET(request: Request) {
|
const handler = async (request: Request) => {
|
||||||
// Extract search parameters from the request URL
|
// Extract search parameters from the request URL
|
||||||
const { searchParams } = new URL(request.url);
|
const { searchParams } = new URL(request.url);
|
||||||
const params = Object.fromEntries(searchParams.entries());
|
const params = Object.fromEntries(searchParams.entries());
|
||||||
@ -92,12 +92,13 @@ export async function GET(request: Request) {
|
|||||||
variables: {
|
variables: {
|
||||||
queryInput: safeParams,
|
queryInput: safeParams,
|
||||||
},
|
},
|
||||||
|
fetchPolicy: "no-cache",
|
||||||
});
|
});
|
||||||
|
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
data: data.search,
|
data: data.search,
|
||||||
message: "Success",
|
message: "success",
|
||||||
status: 200,
|
status: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -119,3 +120,5 @@ export async function GET(request: Request) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export { handler as GET, handler as POST };
|
||||||
|
@ -14,7 +14,9 @@ async function fetchData(hash64: string) {
|
|||||||
notFound();
|
notFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = await apiFetch(`/api/detail?hash=${hash}`); // Fetch data from API
|
const data = await apiFetch(`/api/detail?hash=${hash}`, {
|
||||||
|
next: { revalidate: 60 * 60 * 24 * 7 }, // cache for 7 days
|
||||||
|
});
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { Metadata } from "next";
|
import { Metadata } from "next";
|
||||||
import { redirect } from "next/navigation";
|
|
||||||
import { getTranslations } from "next-intl/server";
|
import { getTranslations } from "next-intl/server";
|
||||||
import { Link } from "@nextui-org/react";
|
import { Link } from "@nextui-org/react";
|
||||||
|
|
||||||
@ -8,7 +7,6 @@ import SearchResultsList from "@/components/SearchResultsList";
|
|||||||
import apiFetch from "@/utils/api";
|
import apiFetch from "@/utils/api";
|
||||||
import { MagnetIcon } from "@/components/icons";
|
import { MagnetIcon } from "@/components/icons";
|
||||||
import { siteConfig } from "@/config/site";
|
import { siteConfig } from "@/config/site";
|
||||||
import { Toast } from "@/utils";
|
|
||||||
import {
|
import {
|
||||||
DEFAULT_SORT_TYPE,
|
DEFAULT_SORT_TYPE,
|
||||||
SEARCH_PAGE_SIZE,
|
SEARCH_PAGE_SIZE,
|
||||||
@ -70,7 +68,9 @@ async function fetchData({
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const resp = await apiFetch(`/api/search?${params.toString()}`);
|
const resp = await apiFetch(`/api/search?${params.toString()}`, {
|
||||||
|
next: { revalidate: 60 * 60 * 6 }, // cache for 6 hours
|
||||||
|
});
|
||||||
|
|
||||||
if (isNewSearch) {
|
if (isNewSearch) {
|
||||||
totalCount = resp.data.total_count;
|
totalCount = resp.data.total_count;
|
||||||
|
Loading…
Reference in New Issue
Block a user