@opengis/fastify-table
Version:
core-plugins
45 lines (44 loc) • 2.48 kB
JavaScript
import config from "../../../config.js";
import suggest from "./controllers/suggest.js";
import data from "./controllers/tableData.js";
import cardTabData from "./controllers/cardTabData.js";
import cardData from "./controllers/cardData.js";
import dataInfo from "./controllers/dataInfo.js";
import tableInfo from "./controllers/tableInfo.js";
import tokenInfo from "./controllers/tokenInfo.js";
import card from "./controllers/card.js";
import search from "./controllers/search.js";
import filter from "./controllers/filter.js";
// import form from './controllers/form.js';
import form from "./controllers/getFormByTable.js";
import loadTemplatePath from "../../plugins/table/funcs/loadTemplatePath.js";
import { tableDataSchema, tableSchema, searchSchema, suggestSchema, formSchema, filterSchema, cardTabDataSchema, tableDataIdSchema, } from "./schema.js";
const policy = "L0";
function plugin(app, opt = {}) {
app.get("/token-info/:token", { config: { role: "admin" } }, tokenInfo);
app.get("/table-filter/:table", { config: { policy }, schema: filterSchema }, filter);
app.get("/table-info/:table/:id?", { config: { policy }, schema: tableDataSchema }, tableInfo);
app.get("/suggest/:data", {
config: {
policy,
rateLimit: config.rateLimit
? {
max: config.rateLimit?.suggest?.max || 10000,
timeWindow: config.rateLimit?.suggest?.timeWindow || "1 minute",
}
: undefined,
},
schema: suggestSchema,
}, suggest);
app.get("/data/:table/:id?", { config: { policy }, schema: tableSchema }, data);
app.get("/table-data/:table", { config: { auth: "creds", policy: "L2" }, schema: tableDataSchema }, data);
app.get("/table-data/:table/:id", { config: { policy }, schema: tableDataIdSchema }, cardData);
app.get("/data-info/:id?", { config: { policy }, schema: tableSchema }, dataInfo);
app.get("/card-data/:token", { config: { policy }, scheme: cardTabDataSchema }, cardTabData);
app.get("/card/:table/:id", { config: { policy }, schema: tableSchema }, card);
app.get("/search", { config: { policy }, schema: searchSchema }, search);
app.get("/templates", () => loadTemplatePath);
app.get("/filter/:table", { config: { policy }, schema: filterSchema }, filter);
app.get("/form/:name/:id?", { config: { auth: "creds", policy: "L2" }, schema: formSchema }, form);
}
export default plugin;