diff --git a/src/service/programService.js b/src/service/programService.js index 014a9778e35c05e409477de05daef54ad503e169..4a2cb1f91f7f36924df405402997bc30ff9f5809 100644 --- a/src/service/programService.js +++ b/src/service/programService.js @@ -1093,12 +1093,15 @@ async function programList(req, response) { return res; } else if (key === 'content_types' && value) { - res[Op.or] = _.map(data.request.filters[key], (val) => { + let contentTypes = _.map(data.request.filters[key], (val) => { return Sequelize.literal(`'${val}' = ANY (\"program\".\"content_types\")`); }); - res[Op.or] = _.map(data.request.filters[key], (val) => { + + let targetprimarycategorynames = _.map(data.request.filters[key], (val) => { return Sequelize.literal(`'${val}' = ANY (\"program\".\"targetprimarycategorynames\")`); }); + + res[Op.or] = contentTypes.concat(targetprimarycategorynames); delete data.request.filters[key]; return { $and : res @@ -1180,13 +1183,13 @@ async function programList(req, response) { } })); } else { - + const res = await model.program.findAll({ where: { ...filters, ...data.request.filters }, - + attributes: data.request.fields || { include : [[Sequelize.json('config.subject'), 'subject'], [Sequelize.json('config.defaultContributeOrgReview'), 'defaultContributeOrgReview'], [Sequelize.json('config.framework'), 'framework'], [Sequelize.json('config.board'), 'board'],[Sequelize.json('config.gradeLevel'), 'gradeLevel'], [Sequelize.json('config.medium'), 'medium']], exclude: ['config', 'description']