"use server"; import { revalidateTag } from "next/cache"; import { cookies } from "next/headers"; import { Token } from "../types"; export async function addToken(_: Token, item: FormData): Promise { const token = cookies().get("token"); const result = await fetch( "https://tachy.daoyoucloud.com/api/tokens:create", { method: "POST", headers: { "X-App": "danmu-sim", "X-Authenticator": "basic", authorization: "Bearer " + token?.value, "content-type": "application/json", }, body: JSON.stringify({ uid: item.get("uid") as string, token: item.get("token") as string, }), } ); const latest = await result.json(); revalidateTag("tokens"); return latest.data } export async function getToken(): Promise { const token = cookies().get("token"); const params = new URLSearchParams(); params.append("pageSize", "20"); params.append("limit", "1"); params.append("sort", "-createdAt"); params.append( "filter", JSON.stringify({ $and: [{ createdBy: { id: { $eq: "{{$user.id}}" } } }] }) ); const liveTokens = await fetch( "https://tachy.daoyoucloud.com/api/tokens:list?" + params.toString(), { method: "GET", headers: { "X-App": "danmu-sim", "X-Authenticator": "basic", authorization: "Bearer " + token?.value, "content-type": "application/json", }, next: { tags: ["tokens"], }, } ); const result = await liveTokens.json(); return result?.data?.[0] ?? { uid: "", token: "" }; }