Skip to content

Commit 119141c

Browse files
committed
fixing measurements endpoint per Issue Assigned #242
1 parent c554985 commit 119141c

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

v2/measurements.ts

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ module.exports = function (req, res, next) {
8585

8686
Object.keys(req.query).forEach(function (param) {
8787
if (validParams.hasOwnProperty(param)) {
88-
where.push(validParams[param] + " IN (:" + param + ")");
88+
where.push(validParams[param] + " = ANY(:" + param + ")");
8989

9090
if (param.substr(param.length - 3, param.length) === "_id") {
9191
params[param] = larkin.parseMultipleIds(req.query[param]);
@@ -104,6 +104,7 @@ module.exports = function (req, res, next) {
104104
//params["col_id2"] = larkin.parseMultipleIds(req.query.col_id);
105105
}
106106

107+
107108
if (req.query.interval_name) {
108109
where.push(
109110
"b_age>(SELECT age_top from intervals where interval_name = ANY(:intname1) and t_age<(SELECT age_bottom from macrostrat.intervals where interval_name = ANY(:intname2)))",
@@ -155,12 +156,16 @@ module.exports = function (req, res, next) {
155156
measuremeta.lng as lng,
156157
unit_measures.unit_id,
157158
rel_position as unit_rel_pos,
158-
IF(unit_measures.unit_id is not null, units_sections.col_id, measuremeta_cols.col_id) as col_id,
159+
CASE
160+
WHEN unit_measures.unit_id IS NOT NULL THEN units_sections.col_id
161+
ELSE measuremeta_cols.col_id
162+
END AS col_id,
159163
strat_name_id,
160164
match_basis,
161165
ref`;
162166
}
163-
167+
//removed IF with a CASE WHEN function.
168+
//IF(unit_measures.unit_id is not null, units_sections.col_id, measuremeta_cols.col_id) as col_id,
164169
if (req.query.response === "light") {
165170
select = `
166171
measurements.id as measurement_id,
@@ -199,38 +204,39 @@ module.exports = function (req, res, next) {
199204
LEFT JOIN macrostrat.lookup_unit_intervals USING (unit_id)
200205
LEFT JOIN macrostrat.liths ON lith_id=liths.id
201206
${where}
202-
GROUP BY measuremeta.id,measurements.id, measure_units, measure_phase, method, v_error_units
207+
GROUP BY measuremeta.id,measurements.id, measure_units, measure_phase, method, v_error_units,
208+
unit_measures.unit_id, unit_measures. rel_position, units_sections. col_id, measuremeta_cols. col_id,
209+
unit_measures. strat_name_id,unit_measures. match_basis
203210
${limit}
204211
`;
205212

206-
207213
larkin.queryPg("burwell", sql, params, function (error, response) {
208214
if (error) {
209215
larkin.error(req, res, next, error);
210216
} else {
211217
if (req.query.format !== "csv" && "show_values" in req.query) {
212-
for (var i = 0; i < response.length; i++) {
218+
for (var i = 0; i < response.rows.length; i++) {
213219
if (req.query.response !== "light") {
214-
response[i].measure_position = larkin.jsonifyPipes(
215-
response[i].measure_position,
220+
response.rows[i].measure_position = larkin.jsonifyPipes(
221+
response.rows[i].measure_position,
216222
"floats",
217223
);
218224
}
219-
response[i].measure_value = larkin.jsonifyPipes(
220-
response[i].measure_value,
225+
response.rows[i].measure_value = larkin.jsonifyPipes(
226+
response.rows[i].measure_value,
221227
"floats",
222228
);
223-
response[i].measure_error = larkin.jsonifyPipes(
224-
response[i].measure_error,
229+
response.rows[i].measure_error = larkin.jsonifyPipes(
230+
response.rows[i].measure_error,
225231
"floats",
226232
);
227233
if (req.query.response === "long") {
228-
response[i].measure_n = larkin.jsonifyPipes(
229-
response[i].measure_n,
234+
response.rows[i].measure_n = larkin.jsonifyPipes(
235+
response.rows[i].measure_n,
230236
"floats",
231237
);
232-
response[i].sample_no = larkin.jsonifyPipes(
233-
response[i].sample_no,
238+
response.rows[i].sample_no = larkin.jsonifyPipes(
239+
response.rows[i].sample_no,
234240
"strings",
235241
);
236242
}
@@ -239,7 +245,7 @@ module.exports = function (req, res, next) {
239245

240246
if (geo) {
241247
dbgeo.parse(
242-
response,
248+
response.rows,
243249
{
244250
outputFormat: larkin.getOutputFormat(req.query.format),
245251
geometryColumn: ["lng", "lat"],

0 commit comments

Comments
 (0)