From 0831ce431c3103d949c3c04c2c40fcbdc60cebe4 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Wed, 8 Feb 2017 14:53:20 +0530 Subject: [PATCH 1/2] Github issue#40, Support IN query with project status filter -- Implemented the IN support for the status filter --- src/models/project.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/models/project.js b/src/models/project.js index 18fac056..7c6aa511 100644 --- a/src/models/project.js +++ b/src/models/project.js @@ -118,7 +118,15 @@ module.exports = function(sequelize, DataTypes) { } } if (_.has(parameters.filters, 'status')) { - query += `AND status = '${parameters.filters.status}' `; + var statusFilter = parameters.filters.status + if (_.isObject(statusFilter)) { + if (statusFilter['$in'].length === 0) { + statusFilter['$in'].push(-1) + } + query += `AND status IN (${statusFilter['$in']}) `; + } else if(_.isString(statusFilter)){ + query += `AND status = ${statusFilter} `; + } } if (_.has(parameters.filters, 'type')) { query += `AND type = '${parameters.filters.type}' `; From aa8f4c333834c74c6bf8dd18d6c547ac662882d0 Mon Sep 17 00:00:00 2001 From: Vikas Agarwal Date: Mon, 13 Feb 2017 11:15:12 +0530 Subject: [PATCH 2/2] Github issue#618, Project Listings: "Open" filter not returning any results -- Updated the fix to handle the IN operator without any change in query at the caller end. --- src/models/project.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/models/project.js b/src/models/project.js index 7c6aa511..93bd1fa4 100644 --- a/src/models/project.js +++ b/src/models/project.js @@ -120,12 +120,10 @@ module.exports = function(sequelize, DataTypes) { if (_.has(parameters.filters, 'status')) { var statusFilter = parameters.filters.status if (_.isObject(statusFilter)) { - if (statusFilter['$in'].length === 0) { - statusFilter['$in'].push(-1) - } - query += `AND status IN (${statusFilter['$in']}) `; + var statuses = statusFilter['$in'].join("','"); + query += `AND status IN ('${statuses}') `; } else if(_.isString(statusFilter)){ - query += `AND status = ${statusFilter} `; + query += `AND status ='${statusFilter}'`; } } if (_.has(parameters.filters, 'type')) {