"use server"; const getRandomResultFromGCI = async ( query: string, ): Promise> => { try { if (!query) { return { error: true, errorMessage: "You must provide a search query." }; } const response = await fetch( `https://guncadindex.com/api/releases/?query=${query}`, ); if (!response.ok) { console.error(response.status); return { error: true, errorMessage: "Something went wrong." }; } const { results }: GCIAPIResult = await response.json(); // handle no results found for dumb queries if (!results || results.length === 0) { return { error: false, payload: `https://guncadindex.com/search?query=${query}`, }; } // select a random result from the API const randomResult = results[Math.floor(Math.random() * results.length)]; const slug = randomResult.url.split("/").filter(Boolean).pop(); // handle edge case if (!slug) { return { error: true, errorMessage: "Could not retrieve results." }; } return { error: false, payload: `https://guncadindex.com/detail/${slug}` }; } catch (error) { if (error instanceof Error) { console.error(error.message); } return { error: true, errorMessage: "Something went wrong." }; } }; const lmgcitfy = async (query: string): Promise> => { if (!query) { return { error: true, errorMessage: "You must provide a search query." }; } const searchParams = new URLSearchParams(); searchParams.append("query", query); const redirectURL = `https://guncadindex.com/search?${searchParams}`; return { error: false, payload: redirectURL }; }; export { getRandomResultFromGCI, lmgcitfy };