Add logging to genieacs-fs

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2019-07-05 14:38:50 -07:00
1 parent ebff97e795
commit 6eac4e45c0
1 file changed
+13 -5
+13 -5
View File
@@ -21,21 +21,27 @@ import * as url from "url";
import * as querystring from "querystring"; import * as querystring from "querystring";
import { GridFSBucket } from "mongodb"; import { GridFSBucket } from "mongodb";
import * as db from "./db"; import * as db from "./db";
import * as logger from "./logger";
export function listener(request, response): void { export function listener(request, response): void {
const urlParts = url.parse(request.url, true); const urlParts = url.parse(request.url, true);
if (request.method === "GET") { if (request.method === "GET") {
const filename = querystring.unescape(urlParts.pathname.substring(1)); const filename = querystring.unescape(urlParts.pathname.substring(1));
const log = {
message: "Fetch file",
filename: filename,
remoteAddress: request.connection.remoteAddress
};
db.filesCollection.findOne({ _id: filename }, (err, file) => { db.filesCollection.findOne({ _id: filename }, (err, file) => {
if (err) { if (err) throw err;
response.writeHead(500, { Connection: "close" });
response.end(`${err.name}: ${err.message}`);
throw err;
}
if (!file) { if (!file) {
response.writeHead(404); response.writeHead(404);
response.end(); response.end();
log.message += " not found";
logger.accessError(log);
return; return;
} }
@@ -47,6 +53,8 @@ export function listener(request, response): void {
const bucket = new GridFSBucket(db.client.db()); const bucket = new GridFSBucket(db.client.db());
const downloadStream = bucket.openDownloadStreamByName(filename); const downloadStream = bucket.openDownloadStreamByName(filename);
downloadStream.pipe(response); downloadStream.pipe(response);
logger.accessInfo(log);
}); });
} else { } else {
response.writeHead(405, { Allow: "GET" }); response.writeHead(405, { Allow: "GET" });