@@ -66,12 +66,25 @@ exports.getEntries = function(filter, callback){
6666 }
6767
6868 if ( filter [ 'profileImage' ] === 1 ) {
69- sql += ( filter [ 'active' ] === 1 ? ' AND' : ' WHERE' ) + ' image != \'\'' ;
69+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' image != \'\'' ;
7070 }
7171
72- let orderByDate = filter [ 'orderByDate' ] === 'asc' ? 'ASC' : 'DESC' ;
72+ if ( filter [ 'confirmed' ] === 'yes' ) {
73+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' email_confirmed = 1' ;
74+ } else if ( filter [ 'confirmed' ] === 'no' ) {
75+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' email_confirmed = 0' ;
76+ }
77+
78+ if ( filter [ 'status' ] === 'active' && filter [ 'active' ] !== 1 ) {
79+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' status = 1' ;
80+ } else if ( filter [ 'status' ] === 'inactive' && filter [ 'active' ] !== 1 ) {
81+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' status = 0' ;
82+ }
83+
84+ let orderBy = filter [ 'orderBy' ] ? filter [ 'orderBy' ] : 'id' ;
85+ let order = filter [ 'order' ] ? filter [ 'order' ] : 'desc' ;
7386
74- sql += ' ORDER BY ID ' + orderByDate + ' LIMIT ? OFFSET ?;' ;
87+ sql += ' ORDER BY ' + orderBy + ' ' + order + ' LIMIT ? OFFSET ?;' ;
7588
7689 // make the query
7790 connection . query ( sql , [ filter [ 'limit' ] , filter [ 'offset' ] ] , function ( err , results ) {
@@ -159,11 +172,33 @@ exports.deleteEntry = function(id, callback){
159172 } ) ;
160173} ;
161174
162- exports . getCount = function ( callback ) {
175+ exports . getCount = function ( filter , callback ) {
176+ console . log ( filter ) ;
163177 pool . getConnection ( function ( err , connection ) {
164178 if ( err ) { console . log ( err ) ; callback ( true ) ; return ; }
165179
166- let sql = "SELECT count(*) as cnt FROM entries WHERE email_confirmed > 0 AND status < 2 AND country != '';" ;
180+ // let sql = "SELECT count(*) as cnt FROM entries WHERE email_confirmed > 0 AND status < 2 AND country != '';";
181+ let sql = 'SELECT count(*) as cnt FROM entries' ;
182+
183+ if ( filter [ 'active' ] === 1 ) {
184+ sql += ' WHERE email_confirmed > 0 AND status < 2 AND country != \'\'' ;
185+ }
186+
187+ if ( filter [ 'profileImage' ] === 1 ) {
188+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' image != \'\'' ;
189+ }
190+
191+ if ( filter [ 'confirmed' ] === 'yes' ) {
192+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' email_confirmed = 1' ;
193+ } else if ( filter [ 'confirmed' ] === 'no' ) {
194+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' email_confirmed = 0' ;
195+ }
196+
197+ if ( filter [ 'status' ] === 'active' && filter [ 'active' ] !== 1 ) {
198+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' status = 1' ;
199+ } else if ( filter [ 'status' ] === 'inactive' && filter [ 'active' ] !== 1 ) {
200+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' status = 0' ;
201+ }
167202
168203 // make the query
169204 connection . query ( sql , function ( err , results ) {
0 commit comments