@@ -148,48 +148,50 @@ module.exports = function (req, res, next, callback) {
148148 }
149149
150150 var geo = "" ;
151- var params = [
152- Object . keys ( new_cols ) . map ( function ( d ) {
153- return parseInt ( d ) ;
154- } ) ,
155- ] ;
151+
152+ const col_ids = Object . keys ( new_cols ) . map ( function ( d ) {
153+ return parseInt ( d ) ;
154+ } ) ;
155+
156+ let params = {
157+ col_ids,
158+ } ;
156159
157160 var limit = "sample" in req . query ? " LIMIT 5" : "" ;
158161 var groupBy = "" ;
159- var orderby = "" ;
162+ let orderBy = "" ;
160163
161164 if ( req . query . status_code ) {
162- params . push ( decodeURI ( req . query . status_code ) ) ;
165+ params [ "status_code" ] = larkin . parseMultipleStrings (
166+ decodeURI ( req . query . status_code ) ,
167+ ) ;
163168 } else {
164- params . push ( " active") ;
169+ params [ "status_code" ] = [ " active"] ;
165170 }
166171
167172 if ( req . query . format && api . acceptedFormats . geo [ req . query . format ] ) {
168173 if ( req . query . shape ) {
169174 geo =
170- ", ST_AsGeoJSON(ST_Intersection(col_areas.col_area, ST_MakeValid($3 ))) geojson" ;
171- params . push ( req . query . shape ) ;
175+ ", ST_AsGeoJSON(ST_Intersection(col_areas.col_area, ST_MakeValid(:shape ))) geojson" ;
176+ params [ "shape" ] = req . query . shape ;
172177 } else {
173178 geo = ", ST_AsGeoJSON(col_areas.col_area) geojson" ;
174179 }
175180 groupBy = ", col_areas.col_area" ;
176181 }
177182
178183 if ( req . query . lat && req . query . lng && req . query . adjacents ) {
179- orderby =
180- "ORDER BY ST_Distance(ST_SetSRID(col_areas.col_area, 4326), ST_GeometryFromText($3, 4326))" ;
181- params . push (
182- "POINT(" +
183- larkin . normalizeLng ( req . query . lng ) +
184- " " +
185- req . query . lat +
186- ")" ,
187- ) ;
184+ orderBy =
185+ "ORDER BY ST_Distance(ST_SetSRID(col_areas.col_area, 4326), ST_GeometryFromText(ST_MakePoint(:lng, :lat), 4326))" ;
186+ params [ "lat" ] = req . query . lat ;
187+ params [ "lng" ] = larkin . normalizeLng ( req . query . lng ) ;
188188 groupBy = ", col_areas.col_area" ;
189189 } else if ( req . query . col_id && req . query . adjacents ) {
190- orderby =
191- "ORDER BY ST_Distance(ST_Centroid(col_areas.col_area), (SELECT ST_Centroid(col_area) FROM macrostrat.col_areas WHERE col_id = $3))" ;
192- params . push ( req . query . col_id ) ;
190+ orderBy = `ORDER BY ST_Distance(
191+ ST_Centroid(col_areas.col_area),
192+ (SELECT ST_Centroid(col_area) FROM macrostrat.col_areas WHERE col_id = :col_id)
193+ )` ;
194+ params [ "col_id" ] = req . query . col_id ;
193195 groupBy = ", col_areas.col_area" ;
194196 }
195197
@@ -215,10 +217,10 @@ module.exports = function (req, res, next, callback) {
215217 LEFT JOIN macrostrat.col_areas on col_areas.col_id = cols.id
216218 LEFT JOIN macrostrat.col_groups ON col_groups.id = cols.col_group_id
217219 LEFT JOIN macrostrat.col_refs ON cols.id = col_refs.col_id
218- WHERE cols.status_code = $2
219- AND cols.id = ANY($1 )
220+ WHERE cols.status_code = ANY(:status_code)
221+ AND cols.id = ANY(:col_ids )
220222 GROUP BY col_areas.col_id, cols.id, col_groups.col_group, col_groups.id ${ groupBy }
221- ${ orderby }
223+ ${ orderBy }
222224 ${ limit }
223225 ` ,
224226 params ,
0 commit comments