fixup
This commit is contained in:
@@ -312,8 +312,8 @@ export default function UserUrlsList({ user, action }: UrlListProps) {
|
||||
)}
|
||||
<Table>
|
||||
<TableHeader className="bg-gray-100/50 dark:bg-primary-foreground">
|
||||
<TableRow className="grid grid-cols-3 items-center sm:grid-cols-9">
|
||||
<TableHead className="col-span-1 flex items-center font-bold">
|
||||
<TableRow className="grid grid-cols-3 items-center sm:grid-cols-10">
|
||||
<TableHead className="col-span-1 flex items-center font-bold sm:col-span-2">
|
||||
Url
|
||||
</TableHead>
|
||||
<TableHead className="col-span-1 flex items-center font-bold sm:col-span-2">
|
||||
@@ -350,9 +350,9 @@ export default function UserUrlsList({ user, action }: UrlListProps) {
|
||||
<>
|
||||
<TableRow
|
||||
key={short.id}
|
||||
className="grid animate-fade-in grid-cols-3 items-center animate-in sm:grid-cols-9"
|
||||
className="grid animate-fade-in grid-cols-3 items-center animate-in sm:grid-cols-10"
|
||||
>
|
||||
<TableCell className="col-span-1 flex items-center gap-1">
|
||||
<TableCell className="col-span-1 flex items-center gap-1 sm:col-span-2">
|
||||
<Link
|
||||
className="overflow-hidden overflow-ellipsis whitespace-normal text-slate-600 hover:text-blue-400 hover:underline dark:text-slate-400"
|
||||
href={`https://${short.prefix}/s/${short.url}`}
|
||||
|
||||
@@ -31,14 +31,14 @@ export async function POST(req: Request) {
|
||||
|
||||
// Check quota: 若是管理员则不检查,否则检查
|
||||
const user_records_count = await getUserRecordCount(user.id);
|
||||
|
||||
if (
|
||||
user.role !== "ADMIN" &&
|
||||
Number(NEXT_PUBLIC_FREE_RECORD_QUOTA) > 0 &&
|
||||
user_records_count >= Number(NEXT_PUBLIC_FREE_RECORD_QUOTA)
|
||||
// Number(NEXT_PUBLIC_FREE_RECORD_QUOTA) > 0 &&
|
||||
) {
|
||||
return Response.json("Your records have reached the free limit.", {
|
||||
status: 409,
|
||||
statusText: "Your records have reached the free limit.",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -56,7 +56,6 @@ export async function POST(req: Request) {
|
||||
if (reservedDomains.includes(record_name)) {
|
||||
return Response.json("Domain name is reserved", {
|
||||
status: 403,
|
||||
statusText: "Domain name is reserved",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -70,7 +69,6 @@ export async function POST(req: Request) {
|
||||
if (user_record && user_record.length > 0) {
|
||||
return Response.json("Record already exists", {
|
||||
status: 403,
|
||||
statusText: "Record already exists",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -83,7 +81,6 @@ export async function POST(req: Request) {
|
||||
if (!data.success || !data.result?.id) {
|
||||
return Response.json(data.errors, {
|
||||
status: 501,
|
||||
statusText: `An error occurred. ${data.errors}`,
|
||||
});
|
||||
} else {
|
||||
const res = await createUserRecord(user.id, {
|
||||
@@ -105,7 +102,6 @@ export async function POST(req: Request) {
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
status: 502,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
@@ -114,7 +110,6 @@ export async function POST(req: Request) {
|
||||
console.error("[错误]", error);
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error?.status || 500,
|
||||
statusText: error?.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ export async function POST(req: Request) {
|
||||
if (user.role !== "ADMIN") {
|
||||
return Response.json("Unauthorized", {
|
||||
status: 401,
|
||||
statusText: "Unauthorized",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -19,7 +18,6 @@ export async function POST(req: Request) {
|
||||
if (!record_id || !userId) {
|
||||
return Response.json("RecordId and userId are required", {
|
||||
status: 400,
|
||||
statusText: "RecordId and userId are required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,7 +25,6 @@ export async function POST(req: Request) {
|
||||
if (!CLOUDFLARE_ZONE_ID || !CLOUDFLARE_API_KEY || !CLOUDFLARE_EMAIL) {
|
||||
return Response.json("API key、zone iD and email are required", {
|
||||
status: 400,
|
||||
statusText: "API key、zone iD and email are required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -43,18 +40,15 @@ export async function POST(req: Request) {
|
||||
await deleteUserRecord(userId, record_id, zone_id, active);
|
||||
return Response.json("success", {
|
||||
status: 200,
|
||||
statusText: "success",
|
||||
});
|
||||
}
|
||||
return Response.json({
|
||||
return Response.json("Not Implemented", {
|
||||
status: 501,
|
||||
statusText: "Not Implemented",
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,6 @@ export async function GET(req: Request) {
|
||||
if (user.role !== "ADMIN") {
|
||||
return Response.json("Unauthorized", {
|
||||
status: 401,
|
||||
statusText: "Unauthorized",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -30,7 +29,6 @@ export async function GET(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ export async function POST(req: Request) {
|
||||
if (user.role !== "ADMIN") {
|
||||
return Response.json("Unauthorized", {
|
||||
status: 401,
|
||||
statusText: "Unauthorized",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -19,7 +18,6 @@ export async function POST(req: Request) {
|
||||
if (!CLOUDFLARE_ZONE_ID || !CLOUDFLARE_API_KEY || !CLOUDFLARE_EMAIL) {
|
||||
return Response.json("API key、zone iD and email are required", {
|
||||
status: 400,
|
||||
statusText: "API key、zone iD and email are required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,7 +25,6 @@ export async function POST(req: Request) {
|
||||
if (!recordId || !userId) {
|
||||
return Response.json("RecordId and userId are required", {
|
||||
status: 400,
|
||||
statusText: "RecordId and userId are required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -41,7 +38,6 @@ export async function POST(req: Request) {
|
||||
if (!data.success || !data.result?.id) {
|
||||
return Response.json(data.errors, {
|
||||
status: 501,
|
||||
statusText: `An error occurred. ${data.errors}`,
|
||||
});
|
||||
} else {
|
||||
const res = await updateUserRecord(userId, {
|
||||
@@ -62,7 +58,6 @@ export async function POST(req: Request) {
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
status: 502,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
@@ -70,7 +65,6 @@ export async function POST(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error?.status || 500,
|
||||
statusText: error?.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@ export async function POST(req: Request) {
|
||||
if (!CLOUDFLARE_ZONE_ID || !CLOUDFLARE_API_KEY || !CLOUDFLARE_EMAIL) {
|
||||
return Response.json("API key、zone iD and email are required", {
|
||||
status: 400,
|
||||
statusText: "API key、zone iD and email are required",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ export async function GET(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,7 @@ export async function POST(req: Request) {
|
||||
|
||||
const { CLOUDFLARE_ZONE_ID, CLOUDFLARE_API_KEY, CLOUDFLARE_EMAIL } = env;
|
||||
if (!CLOUDFLARE_ZONE_ID || !CLOUDFLARE_API_KEY || !CLOUDFLARE_EMAIL) {
|
||||
return Response.json(
|
||||
{ statusText: "API key andzone id are required." },
|
||||
{ status: 401 },
|
||||
);
|
||||
return Response.json("API key andzone id are required.", { status: 401 });
|
||||
}
|
||||
|
||||
const { record, recordId } = await req.json();
|
||||
@@ -30,7 +27,6 @@ export async function POST(req: Request) {
|
||||
if (reservedDomains.includes(record_name)) {
|
||||
return Response.json("Domain name is reserved", {
|
||||
status: 403,
|
||||
statusText: "Domain name is reserved",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -44,7 +40,6 @@ export async function POST(req: Request) {
|
||||
if (!data.success || !data.result?.id) {
|
||||
return Response.json(data.errors, {
|
||||
status: 501,
|
||||
statusText: `An error occurred. ${data.errors}`,
|
||||
});
|
||||
} else {
|
||||
const res = await updateUserRecord(user.id, {
|
||||
@@ -65,7 +60,6 @@ export async function POST(req: Request) {
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
status: 502,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
@@ -74,7 +68,6 @@ export async function POST(req: Request) {
|
||||
console.error(error);
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error?.status || 500,
|
||||
statusText: error?.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -87,10 +80,9 @@ export async function PUT(req: Request) {
|
||||
|
||||
const { CLOUDFLARE_ZONE_ID, CLOUDFLARE_API_KEY, CLOUDFLARE_EMAIL } = env;
|
||||
if (!CLOUDFLARE_ZONE_ID || !CLOUDFLARE_API_KEY || !CLOUDFLARE_EMAIL) {
|
||||
return Response.json(
|
||||
{ statusText: "API key and zone id are required." },
|
||||
{ status: 401 },
|
||||
);
|
||||
return Response.json("API key and zone id are required.", {
|
||||
status: 401,
|
||||
});
|
||||
}
|
||||
|
||||
const { zone_id, record_id, target, active } = await req.json();
|
||||
@@ -112,16 +104,13 @@ export async function PUT(req: Request) {
|
||||
);
|
||||
|
||||
if (!res) {
|
||||
return Response.json(
|
||||
{ statusText: "An error occurred." },
|
||||
{ status: 502 },
|
||||
);
|
||||
return Response.json("An error occurred.", { status: 502 });
|
||||
}
|
||||
return Response.json(
|
||||
isTargetAccessible ? "Target is accessible!" : "Target is unaccessible!",
|
||||
);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return Response.json({ statusText: "Server error" }, { status: 500 });
|
||||
return Response.json(`An error occurred. ${error}`, { status: 500 });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ export async function POST(req: Request) {
|
||||
) {
|
||||
return Response.json("Your short urls have reached the free limit.", {
|
||||
status: 409,
|
||||
statusText: "Your short urls have reached the free limit.",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -40,14 +39,12 @@ export async function POST(req: Request) {
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
status: 502,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ export async function POST(req: Request) {
|
||||
if (!url_id) {
|
||||
return Response.json("url id is required", {
|
||||
status: 400,
|
||||
statusText: "url id is required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,7 +21,6 @@ export async function POST(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ export async function GET(req: Request) {
|
||||
if (!urlId) {
|
||||
return Response.json("url id is required", {
|
||||
status: 400,
|
||||
statusText: "url id is required",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -23,7 +22,6 @@ export async function GET(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ export async function GET(req: Request) {
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,16 +25,14 @@ export async function POST(req: Request) {
|
||||
|
||||
const res = await updateUserShortUrlActive(user.id, id, active, user.role);
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
return Response.json("Update failed", {
|
||||
status: 400,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ export async function POST(req: Request) {
|
||||
if (!data?.id) {
|
||||
return Response.json(`Url id is required`, {
|
||||
status: 400,
|
||||
statusText: `Url id is required`,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -34,14 +33,12 @@ export async function POST(req: Request) {
|
||||
if (res.status !== "success") {
|
||||
return Response.json(res.status, {
|
||||
status: 400,
|
||||
statusText: `An error occurred. ${res.status}`,
|
||||
});
|
||||
}
|
||||
return Response.json(res.data);
|
||||
} catch (error) {
|
||||
return Response.json(error?.statusText || error, {
|
||||
status: error.status || 500,
|
||||
statusText: error.statusText || "Server error",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,12 +90,12 @@ export function RecordForm({
|
||||
records: [data],
|
||||
}),
|
||||
});
|
||||
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Created Failed!", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
// const res = await response.json();
|
||||
toast.success(`Created successfully!`);
|
||||
setShowForm(false);
|
||||
onRefresh();
|
||||
@@ -116,7 +116,7 @@ export function RecordForm({
|
||||
});
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Update Failed", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
const res = await response.json();
|
||||
@@ -142,7 +142,7 @@ export function RecordForm({
|
||||
});
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Delete Failed", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
await response.json();
|
||||
|
||||
@@ -88,7 +88,7 @@ export function UrlForm({
|
||||
});
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Created Failed!", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
// const res = await response.json();
|
||||
@@ -108,7 +108,7 @@ export function UrlForm({
|
||||
});
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Update Failed", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
const res = await response.json();
|
||||
@@ -132,7 +132,7 @@ export function UrlForm({
|
||||
});
|
||||
if (!response.ok || response.status !== 200) {
|
||||
toast.error("Delete Failed", {
|
||||
description: response.statusText,
|
||||
description: await response.json(),
|
||||
});
|
||||
} else {
|
||||
await response.json();
|
||||
|
||||
@@ -42,7 +42,7 @@ export const PricingSection = () => {
|
||||
icon: <Icons.mousePointerClick className="size-4" />,
|
||||
},
|
||||
{
|
||||
text: "10k new links/mo",
|
||||
text: "1k new links/mo",
|
||||
checked: true,
|
||||
icon: <Icons.link className="size-4" />,
|
||||
},
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user