2020-05-07 11:53:34 +02:00
|
|
|
const Router = require("@koa/router")
|
|
|
|
const controller = require("../controllers/static")
|
2020-05-11 16:42:42 +02:00
|
|
|
const { budibaseTempDir } = require("../../utilities/budibaseDir")
|
2020-05-18 07:40:29 +02:00
|
|
|
const env = require("../../environment")
|
2020-09-15 17:22:13 +02:00
|
|
|
const authorized = require("../../middleware/authorized")
|
2020-11-11 18:34:15 +01:00
|
|
|
const { BUILDER } = require("../../utilities/security/permissions")
|
2020-10-07 18:56:47 +02:00
|
|
|
const usage = require("../../middleware/usageQuota")
|
2020-04-14 16:14:57 +02:00
|
|
|
|
2020-05-07 11:53:34 +02:00
|
|
|
const router = Router()
|
2020-04-14 16:14:57 +02:00
|
|
|
|
2021-03-10 18:55:42 +01:00
|
|
|
/* istanbul ignore next */
|
2020-05-18 07:40:29 +02:00
|
|
|
router.param("file", async (file, ctx, next) => {
|
|
|
|
ctx.file = file && file.includes(".") ? file : "index.html"
|
|
|
|
|
|
|
|
// Serving the client library from your local dir in dev
|
|
|
|
if (ctx.isDev && ctx.file.startsWith("budibase-client")) {
|
|
|
|
ctx.devPath = budibaseTempDir()
|
|
|
|
}
|
2020-05-06 13:17:15 +02:00
|
|
|
|
2020-05-18 07:40:29 +02:00
|
|
|
await next()
|
|
|
|
})
|
2020-05-06 13:17:15 +02:00
|
|
|
|
2020-05-18 07:40:29 +02:00
|
|
|
if (env.NODE_ENV !== "production") {
|
|
|
|
router.get("/_builder/:file*", controller.serveBuilder)
|
|
|
|
}
|
|
|
|
|
2021-01-28 19:30:59 +01:00
|
|
|
if (env.SELF_HOSTED) {
|
|
|
|
router.get("/", controller.serveSelfHostPage)
|
|
|
|
}
|
|
|
|
|
2020-05-18 07:40:29 +02:00
|
|
|
router
|
2020-09-17 17:36:39 +02:00
|
|
|
.post(
|
|
|
|
"/api/attachments/process",
|
|
|
|
authorized(BUILDER),
|
2020-09-23 18:02:06 +02:00
|
|
|
controller.performLocalFileProcessing
|
2020-09-17 17:36:39 +02:00
|
|
|
)
|
2020-10-07 18:56:47 +02:00
|
|
|
.post("/api/attachments/upload", usage, controller.uploadFile)
|
2020-06-12 21:42:55 +02:00
|
|
|
.get("/componentlibrary", controller.serveComponentLibrary)
|
|
|
|
.get("/assets/:file*", controller.serveAppAsset)
|
2020-09-15 17:22:13 +02:00
|
|
|
.get("/attachments/:file*", controller.serveAttachment)
|
2020-06-12 21:42:55 +02:00
|
|
|
.get("/:appId/:path*", controller.serveApp)
|
2020-04-14 16:14:57 +02:00
|
|
|
|
2020-05-07 11:53:34 +02:00
|
|
|
module.exports = router
|