2020-11-03 03:53:51 +13:00
|
|
|
const CouchDB = require("../../db/client")
|
|
|
|
const { generatePageID } = require("../../db/utils")
|
2020-11-07 02:46:19 +13:00
|
|
|
const compileStaticAssetsForPage = require("../../utilities/builder/compileStaticAssetsForPage")
|
2020-11-03 03:53:51 +13:00
|
|
|
|
|
|
|
exports.save = async function(ctx) {
|
|
|
|
const db = new CouchDB(ctx.user.appId)
|
|
|
|
|
|
|
|
const appPackage = ctx.request.body
|
|
|
|
|
2020-11-06 03:38:44 +13:00
|
|
|
const page = await db.get(ctx.params.pageId)
|
2020-11-07 01:30:30 +13:00
|
|
|
await compileStaticAssetsForPage(ctx.user.appId, page.name, ctx.request.body)
|
2020-11-03 03:53:51 +13:00
|
|
|
|
2020-11-05 01:36:38 +13:00
|
|
|
// remove special doc props which couch will complain about
|
|
|
|
delete appPackage.page._css
|
|
|
|
delete appPackage.page._screens
|
2020-11-03 03:53:51 +13:00
|
|
|
appPackage.page._id = appPackage.page._id || generatePageID()
|
2020-11-05 01:36:38 +13:00
|
|
|
ctx.body = await db.put(appPackage.page)
|
2020-11-04 05:27:28 +13:00
|
|
|
ctx.status = 200
|
2020-11-03 03:53:51 +13:00
|
|
|
}
|