UNPKG

paradigm-core

Version:
200 lines (152 loc) 3.9 kB
const { RootController, DigitalAssetsPlugin: {DigitalAssetModel} } = require('structure-core') const PageModel = require('../models/page') /** * PageController Class * * @public * @class PageController */ class PageController extends RootController { /** * PageController constructor * * @public * @constructor * @param {Object} options - Options */ constructor(options = {}) { super(Object.assign({}, { name: 'pages' }, options)) } /** * Create new page * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ async create(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) const pkg = req.body if(!pkg.applicationId) { pkg.applicationId = req.headers.applicationid } if(!pkg.organizationId) { pkg.organizationId = req.headers.organizationid } return pageModel.create(pkg) } deleteById(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) return pageModel.deleteById(req.params.id) } /** * Get all pages * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ getAll(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) return pageModel.getAll([], { applicationId: req.headers.applicationid, organizationId: req.headers.organizationid }) } /** * Get a page by id * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ async getById(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) const page = await pageModel.getById(req.params.id) if (page.imageId) { const daModel = new DigitalAssetModel({ organizationId: this.organizationId, applicationId: this.applicationId, logger: this.logger }) const da = await daModel.getById(page.imageId) page.image = da } return page } /** * Get a page by slug * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ async getBySlug(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) const page = await pageModel.getBySlug(req.params.slug) if (page.imageId) { const daModel = new DigitalAssetModel({ organizationId: this.organizationId, applicationId: this.applicationId, logger: this.logger }) const da = await daModel.getById(page.imageId) page.image = da } return page } /** * Update a page * * @public * @param {Object} req - Express req * @param {Object} res - Express res */ updateById(req, res) { const applicationId = req.headers.applicationid const organizationId = req.headers.organizationid const pageModel = new PageModel({ applicationId, logger: this.logger, organizationId }) const pkg = req.body return pageModel.updateById(req.params.id, pkg) } } module.exports = PageController