paradigm-core
Version:
Paradigm Core Modules
99 lines (66 loc) • 1.56 kB
JavaScript
const {r, RootModel} = require('structure-core')
/**
* PageModel Class
*
* @public
* @class PageModel
*/
class PageModel extends RootModel {
/**
* PageModel constructor
*
* @public
* @constructor
* @param {Object} options - Options
*/
constructor(options = {}) {
super(Object.assign({}, {
table: 'pages',
}, options))
}
getAll(ids = [], options = {}) {
const applicationId = options.applicationId
const organizationId = options.organizationId
return new Promise( async (resolve, reject) => {
try {
let query = r
.table(this.table)
if(ids.length > 0) {
query = query
.getAll(r.args(ids))
}
else {
query = query
.getAll(applicationId, {index: 'applicationId'})
}
const pages = await query.run()
resolve(pages)
}
catch(e) {
this.logger.error(e)
reject(e)
}
})
}
getBySlug(slug, options = {}) {
const applicationId = this.applicationId || options.applicationId
return new Promise( async (resolve, reject) => {
try {
const page = await r
.table(this.table)
.getAll(
[slug, applicationId],
{index: 'link_pageSlug_applicationId'}
)
if(page.length > 0) {
return resolve(page[0])
}
resolve(false)
} catch(e) {
this.logger.error(e)
reject(e)
}
})
}
}
module.exports = PageModel