@@ -66,12 +66,25 @@ exports.getEntries = function(filter, callback){
66
66
}
67
67
68
68
if ( filter [ 'profileImage' ] === 1 ) {
69
- sql += ( filter [ 'active' ] === 1 ? ' AND' : ' WHERE' ) + ' image != \'\'' ;
69
+ sql += ( sql . includes ( 'WHERE' ) ? ' AND' : ' WHERE' ) + ' image != \'\'' ;
70
70
}
71
71
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' ;
73
86
74
- sql += ' ORDER BY ID ' + orderByDate + ' LIMIT ? OFFSET ?;' ;
87
+ sql += ' ORDER BY ' + orderBy + ' ' + order + ' LIMIT ? OFFSET ?;' ;
75
88
76
89
// make the query
77
90
connection . query ( sql , [ filter [ 'limit' ] , filter [ 'offset' ] ] , function ( err , results ) {
@@ -159,11 +172,33 @@ exports.deleteEntry = function(id, callback){
159
172
} ) ;
160
173
} ;
161
174
162
- exports . getCount = function ( callback ) {
175
+ exports . getCount = function ( filter , callback ) {
176
+ console . log ( filter ) ;
163
177
pool . getConnection ( function ( err , connection ) {
164
178
if ( err ) { console . log ( err ) ; callback ( true ) ; return ; }
165
179
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
+ }
167
202
168
203
// make the query
169
204
connection . query ( sql , function ( err , results ) {
0 commit comments