91 lines
2.6 KiB
TypeScript
91 lines
2.6 KiB
TypeScript
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
import { apiReference } from "@scalar/hono-api-reference";
|
|
import { settings } from "../../../../database/schema/settings.js";
|
|
import { db } from "../../../../database/dbclient.js";
|
|
import { eq } from "drizzle-orm";
|
|
import { getSettings } from "../../server/controller/settings/getSettings.js";
|
|
|
|
const app = new OpenAPIHono();
|
|
const serverSettings = await getSettings();
|
|
const plantToken = serverSettings.filter((n) => n.name === "plantToken") as any; //await db.select().from(settings).where(eq(settings.name, "plantToken"));
|
|
|
|
let pToken = plantToken[0]?.value;
|
|
const testServers = ["test1", "test2", "test3"];
|
|
if (testServers.includes(plantToken[0]?.value)) {
|
|
pToken = "usbow1";
|
|
}
|
|
app.get(
|
|
"/docs",
|
|
apiReference({
|
|
theme: "kepler",
|
|
layout: "classic",
|
|
defaultHttpClient: { targetKey: "node", clientKey: "axios" },
|
|
pageTitle: "Lst API Reference",
|
|
hiddenClients: [
|
|
"libcurl",
|
|
"clj_http",
|
|
"httpclient",
|
|
"restsharp",
|
|
"native",
|
|
"http1.1",
|
|
"asynchttp",
|
|
"nethttp",
|
|
"okhttp",
|
|
"unirest",
|
|
"xhr",
|
|
"fetch",
|
|
"jquery",
|
|
"okhttp",
|
|
"native",
|
|
"request",
|
|
"unirest",
|
|
"nsurlsession",
|
|
"cohttp",
|
|
"curl",
|
|
"guzzle",
|
|
"http1",
|
|
"http2",
|
|
"webrequest",
|
|
"restmethod",
|
|
"python3",
|
|
"requests",
|
|
"httr",
|
|
"native",
|
|
"curl",
|
|
"httpie",
|
|
"wget",
|
|
"nsurlsession",
|
|
"undici",
|
|
],
|
|
|
|
url: "/api/ref",
|
|
|
|
baseServerURL: "https://scalar.com",
|
|
servers: [
|
|
{
|
|
url: `http://${pToken}vms006:${process.env.VITE_SERVER_PORT}`,
|
|
description: "Production",
|
|
},
|
|
{
|
|
url: `http://localhost:${process.env.VITE_SERVER_PORT}`,
|
|
description: "dev server",
|
|
},
|
|
],
|
|
// authentication: {
|
|
// preferredSecurityScheme: {'bearerAuth'},
|
|
// },
|
|
|
|
// metaData: {
|
|
// title: "Page title",
|
|
// description: "My page page",
|
|
// ogDescription: "Still about my my page",
|
|
// ogTitle: "Page title",
|
|
// ogImage: "https://example.com/image.png",
|
|
// twitterCard: "summary_large_image",
|
|
// // Add more...
|
|
// },
|
|
})
|
|
);
|
|
|
|
export default app;
|