@opengis/fastify-table
Version:
core-plugins
46 lines (34 loc) • 2.31 kB
JavaScript
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 loadTemplatePath from '../../plugins/table/funcs/loadTemplatePath.js';
import {
tableDataSchema, tableSchema, searchSchema, suggestSchema, formSchema, filterSchema, cardTabDataSchema, tableDataIdSchema,
} from './schema.js';
const policy = ['public'];
async function plugin(app, config = {}) {
const { prefix = '/api' } = config;
app.get(`${prefix}/token-info/:token`, { config: { policy: ['admin'] } }, tokenInfo);
app.get(`${prefix}/table-filter/:table`, { config: { policy }, schema: filterSchema }, filter);
app.get(`${prefix}/table-info/:table/:id?`, { config: { policy }, schema: tableDataSchema }, tableInfo);
app.get(`${prefix}/suggest/:data`, { config: { policy }, schema: suggestSchema }, suggest);
app.get(`${prefix}/data/:table/:id?`, { config: { policy: ['public', 'no-sql'] }, schema: tableSchema }, data);
app.get(`${prefix}/table-data/:table`, { config: { policy: ['user', 'no-sql'] }, schema: tableDataSchema }, data);
app.get(`${prefix}/table-data/:table/:id`, { config: { policy }, schema: tableDataIdSchema }, cardData);
app.get(`${prefix}/card-data/:token`, { config: { policy }, scheme: cardTabDataSchema }, cardTabData);
app.get(`${prefix}/data-info/:id?`, { config: { policy: ['public', 'no-sql'] }, schema: tableSchema }, dataInfo);
app.get(`${prefix}/card/:table/:id`, { config: { policy }, schema: tableSchema }, card);
app.get(`${prefix}/search`, { config: { policy }, schema: searchSchema }, search);
app.get(`${prefix}/templates`, () => loadTemplatePath);
app.get(`${prefix}/filter/:table`, { config: { policy }, schema: filterSchema }, filter);
app.get(`${prefix}/form/:form`, { config: { policy }, schema: formSchema }, form);
}
export default plugin;