Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions middleware/morganLogger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import morgan from 'morgan';

// Setup morgan logger
const morganLogger = morgan(function (tokens, req, res) {
return [
new Date().toISOString(),
`lat=${req.query.lat}`,
`lng=${req.query.lng}`,
].join(' ')
},
{
stream: process.stdout,
skip: (req: Request, res: Response) => {
return !req.originalUrl.startsWith('/v2/mobile/dashboard') || !req.query.lat || !req.query.lng;
},
}
);

export default morganLogger;
59 changes: 59 additions & 0 deletions middleware/write.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
var api = require("../v2/api"),
larkin = require("../v2/larkin");

module.exports = function (req, res, next, cb) {
//changes similar to structures.ts:
//change params from dict to array. add params.push to array
//add schema to sql table in the from and join clauses
//change sql where syntax to = ANY($1)
//update larkin.queryPg function

//changing params from array back to dict
let params = {};
let where = [];

where = where.length ? "WHERE " + where.join(" AND ") : "";

let sql = `SELECT col_groups.id AS col_group_id,
col_group,
col_group_long AS name,
COUNT(DISTINCT cols.id) AS t_cols,
COUNT(DISTINCT units_sections.unit_id) AS t_units,
cols.project_id
FROM macrostrat.col_groups
LEFT JOIN macrostrat.cols ON cols.col_group_id = col_groups.id
LEFT JOIN macrostrat.units_sections ON units_sections.col_id = cols.id
${where}
GROUP BY col_groups.id, cols.project_id `;


larkin.queryPg("burwell", sql, params, function (error, data) {
if (error) {
if (cb) {
cb(error);
} else {
return larkin.error(req, res, next, error);
}
}

if (cb) {
cb(null, data?.rows);
} else {
larkin.sendData(
req,
res,
next,
{
format: api.acceptedFormats.standard[req.query.format]
? req.query.format
: "json",
bare: api.acceptedFormats.bare[req.query.format] ? true : false,
compact: true,
},
{
data: data?.rows,
},
);
}
});
};
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"mapshaper": "^0.3.20",
"memory-cache": "^0.2.0",
"microtime": "^3.0.0",
"morgan": "^1.10.0",
"multiline": "^1.0.2",
"pg": "^8.15.6",
"pg-native": "^3.4.5",
Expand Down
3 changes: 3 additions & 0 deletions server.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import morganLogger from "./middleware/morganLogger";

const dotenv = require("dotenv");
// Load environment variables from .env file
dotenv.config();
Expand All @@ -8,6 +10,7 @@ var express = require("express"),
v2 = require("./v2"),
defs = require("./v2/defs"),
app = express();
app.use(morganLogger);

var ua = require("universal-analytics");

Expand Down
Loading