@@ -13,7 +13,7 @@ const Promise = require('bluebird');
1313 * @param {* } db
1414 * @returns object {parse}
1515 */
16- module . exports = function ( db ) {
16+ module . exports = ( db ) => {
1717 const Op = db . Sequelize . Op ;
1818
1919 const operators = {
@@ -46,21 +46,20 @@ module.exports = function (db) {
4646 }
4747
4848 /**
49- * Split '.' or ',' seperated strings to array
49+ * Split '.' or ',' separated strings to array
5050 * @param {JSON } obj
5151 * @param {array } array
5252 */
5353 const splitStringAndBuildArray = ( obj , array ) => {
54- let elements = obj . split ( ',' ) ;
54+ const elements = obj . split ( ',' ) ;
5555
56- if ( elements && elements . length > 0 ) {
57- elements . forEach ( element => {
58- var fields = element . split ( '.' ) ;
59- if ( fields && fields . length > 0 ) {
60- array . push ( fields )
61- }
62- } ) ;
63- }
56+ elements . forEach ( element => {
57+ const fields = element . split ( '.' ) ;
58+
59+ if ( fields ?. length > 0 ) {
60+ array . push ( fields )
61+ }
62+ } ) ;
6463 }
6564
6665 /**
@@ -78,8 +77,7 @@ module.exports = function (db) {
7877 query . forEach ( obj => {
7978 splitStringAndBuildArray ( obj , array ) ;
8079 } ) ;
81- }
82- else {
80+ } else {
8381 splitStringAndBuildArray ( query , array ) ;
8482 }
8583 }
@@ -94,43 +92,33 @@ module.exports = function (db) {
9492 * @param {Sequelize.op } op
9593 */
9694 const replaceKeyWithOperator = ( json , key , op ) => {
97- let value = json [ key ] ;
95+ const value = json [ key ] ;
9896 delete json [ key ] ;
9997 json [ op ] = value ;
10098 }
10199
102100 /**
103- * Iteratively replace json keys with Sequelize formated query operators.
101+ * Iteratively replace json keys with Sequelize formatted query operators.
104102 * @param {JSON } json next json
105103 */
106104 const iterativeReplace = ( json ) => {
107- Object . keys ( json ) . forEach ( function ( key ) {
105+ Object . keys ( json ) . forEach ( ( key ) => {
108106 if ( json [ key ] !== null && typeof json [ key ] === 'object' ) {
109-
110- // console.debug("key: ", key);
111- let op = operators [ key ] ;
112- // console.debug("operation: ", op);
107+ const op = operators [ key ] ;
113108
114109 if ( op ) {
115110 replaceKeyWithOperator ( json , key , op ) ;
116- // console.debug("next: ", JSON.stringify(json[op], null, 4));
117111 iterativeReplace ( json [ op ] ) ;
118- }
119- else {
120- // console.debug("next: ", JSON.stringify(json[key], null, 4));
112+ } else {
121113 iterativeReplace ( json [ key ] ) ;
122114 }
123115 }
124116 else if ( key == 'model' && db [ json [ key ] ] != null ) {
125- // json['as'] = json[key].replace(/^./, char => char.toLowerCase());// /^\w/
126- json [ 'model' ] = db [ json [ key ] ] ;
127- }
128- else {
129- let op = operators [ key ] ;
117+ json . model = db [ json [ key ] ] ;
118+ } else {
119+ const op = operators [ key ] ;
130120 if ( op ) replaceKeyWithOperator ( json , key , op ) ;
131121 }
132-
133- // console.debug("After Key:", key, " Query fields: ", JSON.stringify(json, null, 4))
134122 } ) ;
135123 }
136124
@@ -141,8 +129,7 @@ module.exports = function (db) {
141129 */
142130 const unescapeEscapedQuery = ( query ) => {
143131 const queryString = query . toString ( ) ;
144- const queryStringUnescaped = unescape ( queryString ) ;
145- return queryStringUnescaped ;
132+ return unescape ( queryString ) ;
146133 }
147134
148135 /**
@@ -151,9 +138,8 @@ module.exports = function (db) {
151138 * @returns {JSON } sequelize formatted DB query params JSON
152139 */
153140 const parseQueryFields = ( query ) => {
154- let json = JSON . parse ( unescapeEscapedQuery ( query ) ) ;
141+ const json = JSON . parse ( unescapeEscapedQuery ( query ) ) ;
155142 iterativeReplace ( json ) ;
156- // console.debug("Resultent query fields: ", json);
157143 return json ;
158144 }
159145
@@ -163,9 +149,8 @@ module.exports = function (db) {
163149 * @returns {JSON } sequelize formatted DB include params JSON
164150 */
165151 const parseIncludeFields = ( query ) => {
166- let json = JSON . parse ( unescapeEscapedQuery ( query ) ) ;
152+ const json = JSON . parse ( unescapeEscapedQuery ( query ) ) ;
167153 iterativeReplace ( json ) ;
168- // console.debug("Resultent include fields: ", json);
169154 return json ;
170155 }
171156
@@ -175,23 +160,18 @@ module.exports = function (db) {
175160 * @returns {string|JSON } sequelize formatted DB query param
176161 */
177162 const parseQueryParam = ( query ) => {
178- let elements = query . split ( / : ( .+ ) / ) ;
179- // console.debug("Query param: ", JSON.stringify(elements, null, 4));
180- if ( elements && elements . length > 1 ) {
181- var param = { } ;
182- const elementsArray = elements [ 1 ] . split ( ',' )
183- if ( elementsArray ) {
184- if ( elementsArray . length > 1 ) {
185- param [ operators [ elements [ 0 ] ] ] = elementsArray
186- }
187- else {
188- param [ operators [ elements [ 0 ] ] ] = elementsArray [ 0 ]
189- }
190- // console.debug("Query param: ", param);
163+ const elements = query . split ( / : ( .+ ) / ) ;
164+
165+ if ( elements . length > 1 ) {
166+ const param = { } ;
167+ const elementsArray = elements [ 1 ] . split ( ',' ) ;
168+
169+ if ( elementsArray ) {
170+ param [ operators [ elements [ 0 ] ] ] = elementsArray . length > 1 ? elementsArray : elementsArray [ 0 ] ;
191171 return param ;
192172 }
193173 }
194- // console.debug("Query param: ", elements[0]);
174+
195175 return elements [ 0 ] ;
196176 }
197177
@@ -226,18 +206,18 @@ module.exports = function (db) {
226206
227207 return new Promise ( ( resolve , reject ) => {
228208 try {
229- var offset = 0 , limit = pageSizeLimit ;
230- var dbQuery = {
209+ let offset = 0 ;
210+ let limit = pageSizeLimit ;
211+ const dbQuery = {
231212 where : { }
232213 } ;
233- const Op = db . Sequelize . Op ;
234214
235215 for ( const key in req . query ) {
236216 switch ( key ) {
237217 // Fields
238218 case 'fields' :
239219 // split the field names (attributes) and assign to an array
240- let fields = req . query . fields . split ( "," ) ;
220+ const fields = req . query . fields . split ( "," ) ;
241221 // assign fields array to .attributes
242222 if ( fields && fields . length > 0 ) dbQuery . attributes = fields ;
243223 break ;
@@ -266,7 +246,7 @@ module.exports = function (db) {
266246
267247 // JSON (nested) query
268248 case 'query' :
269- let parsed = parseQueryFields ( req . query . query ) ;
249+ const parsed = parseQueryFields ( req . query . query ) ;
270250 dbQuery . where = { ...dbQuery . where , ...parsed } ;
271251 break ;
272252
0 commit comments