"use strict";
const BeneLogger = require('bene-logger');
const R = require('ramda');
let hl = require("highland");
module.exports = {
section: (db, config) => (req, res) => {
const logger = new BeneLogger({logging: config.logging.enabled});
const source = req.params.source;
const publicationId = req.params.publicationId;
logger.setDefaults({
service_name: 'appsApi'
});
const f = R.replace(/[\'_-]+/g, '%', req.query.filter || '');
const r = R.replace(/[\'_-]+/g, '%', req.query.reject || '');
const filter = !R.isEmpty(f) && R.test(/^[A-Za-z\d\-_\s%]+$/, f) ? f : void 0;
const reject = !R.isEmpty(r) && R.test(/^[A-Za-z\d\-_\s%]+$/, r) ? r : void 0;
logger.info(`processing section id request ${source}.${publicationId}`, {
"filter": filter,
"reject": reject
});
let query = {
"where": {
"publication_id": `${source}.${publicationId}`
},
"attributes": ["source", "escenic_id", "name"]
};
let name = {};
if (filter && filter.length > 0) name["$iLike"] = `%${filter}%`;
if (reject && reject.length > 0) name["$notILike"] = `%${reject}%`;
if (R.has("$iLike", name) || R.has("$notILike", name)) query.where.name = name;
hl(db.section.findAll(query))
.toCallback((err, result) => {
logger.info(`finished section id ${source}.${publicationId}`);
res.send(result);
});
},
tag: (db, config) => (req, res) => {
const logger = new BeneLogger({logging: config.logging.enabled});
logger.setDefaults({
service_name: 'appsApi'
});
const f = R.replace(/[\'_-\s]+/g, '%', req.query.filter || '');
const r = R.replace(/[\'_-\s]+/g, '%', req.query.reject || '');
const filter = !R.isEmpty(f) && R.test(/^[A-Za-z\d\-_\s%]+$/, f) ? f : void 0;
const reject = !R.isEmpty(r) && R.test(/^[A-Za-z\d\-_\s%]+$/, r) ? r : void 0;
logger.info(`processing tag id request`, {
"filter": filter,
"reject": reject
});
let query = {
"attributes": ["id", "name", "tag_id"],
"where": {}
};
let name = {};
if (filter && filter.length > 0) name["$iLike"] = `%${filter}%`;
if (reject && reject.length > 0) name["$notILike"] = `%${reject}%`;
if (R.has("$iLike", name) || R.has("$notILike", name)) query.where.name = name;
hl(db.tag.findAll(query))
.toCallback((err, result) => {
logger.info(`finished tag id request`);
res.send(result);
});
}
}; |