From 1915d46ffca0b7af6cef4203553713b8d21daa48 Mon Sep 17 00:00:00 2001 From: Kentai Radiquum Date: Sat, 13 Jul 2024 19:45:22 +0500 Subject: [PATCH] feat: add search api. add token parameter for api. --- app/api/home/route.js | 12 +++++++++--- app/api/search/route.js | 21 +++++++++++++++++++++ app/search/page.js | 0 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 app/api/search/route.js create mode 100644 app/search/page.js diff --git a/app/api/home/route.js b/app/api/home/route.js index 81161b9..1a1d96b 100644 --- a/app/api/home/route.js +++ b/app/api/home/route.js @@ -5,6 +5,7 @@ import { ENDPOINTS } from "../config"; export async function GET(request) { const page = parseInt(request.nextUrl.searchParams.get(["page"])) || 0; const status = request.nextUrl.searchParams.get(["status"]) || null; + const token = request.nextUrl.searchParams.get(["token"]) || null; let statusId; if (status == "last" || !status) { @@ -15,8 +16,13 @@ export async function GET(request) { statusId = 2; } else if (status == "announce") { statusId = 3; - } else { - return NextResponse.json({message: "Bad status"}, {status: 400}); + } else { + return NextResponse.json({ message: "Bad status" }, { status: 400 }); + } + + let url = new URL(`${ENDPOINTS.filter}/${page}`); + if (token) { + url.searchParams.set("token", token); } const data = { @@ -39,6 +45,6 @@ export async function GET(request) { is_genres_exclude_mode_enabled: false, }; - const response = await fetchDataViaPost(`${ENDPOINTS.filter}/${page}`, data); + const response = await fetchDataViaPost(url.toString(), data); return NextResponse.json(response); } diff --git a/app/api/search/route.js b/app/api/search/route.js new file mode 100644 index 0000000..b7d4212 --- /dev/null +++ b/app/api/search/route.js @@ -0,0 +1,21 @@ +import { NextResponse } from "next/server"; +import { fetchDataViaPost } from "../utils"; +import { ENDPOINTS } from "../config"; + +export async function GET(request) { + const page = parseInt(request.nextUrl.searchParams.get(["page"])) || 0; + const query = request.nextUrl.searchParams.get(["q"]) || null; + const token = request.nextUrl.searchParams.get(["token"]) || null; + if (token) { + url.searchParams.set("token", token); + } + const data = { query, searchBy: 0 }; + let url = new URL(`${ENDPOINTS.search}/${page}`); + + const response = await fetchDataViaPost(url.toString(), data); + if (!response) { + return NextResponse.json({ message: "Bad request" }, { status: 400 }); + } + + return NextResponse.json(response); +} diff --git a/app/search/page.js b/app/search/page.js new file mode 100644 index 0000000..e69de29