diff --git a/src/libs/middlewares/reqBody.js b/src/libs/middlewares/reqBody.js
new file mode 100644
index 0000000000000000000000000000000000000000..9df7ebcaeb827836d5a93dbc85f28e0ba33b702d
--- /dev/null
+++ b/src/libs/middlewares/reqBody.js
@@ -0,0 +1,59 @@
+class ReqBody {
+    constructor() {
+
+    }
+
+    add_metrics(req, column, metricsArray) {
+        for (let i in metricsArray) {
+            switch(metricsArray[i]["function"]) {
+                case "max":
+                    req.sql.field("max(" + column + ")", metricsArray[i]["return_name"]);
+                    req.hasMetrics = true;
+                    break;
+                case "min":
+                    req.sql.field("min(" + column + ")", metricsArray[i]["return_name"]);
+                    req.hasMetrics = true;
+                    break;
+                case "count":
+                    req.sql.field("count(" + column + ")", metricsArray[i]["return_name"]);
+                    req.hasMetrics = true;
+                    break;
+                case "sum":
+                    req.sql.field("sum(" + column + ")", metricsArray[i]["return_name"]);
+                    req.hasMetrics = true;
+                    break;
+                default:
+                    break;
+            }
+        }
+    }
+
+    parse() {
+        return(req, res, next) => {
+            // Gets body of the HTTP requisition
+            let body = req.body;
+
+            // Chooses operation based on the mode field of the body
+            switch(body["mode"]) {
+                case "add_metrics":
+                    // adds flag to check whether it runs the default query or not
+                    req.hasMetrics = false;
+                    // Gets all column names
+                    let columns = Object.keys(body["add_metrics"]);
+                    // Calls function to add metrics that were specified to req.sql
+                    for (let i in columns) {
+                        this.add_metrics(req, columns[i], body["add_metrics"][columns[i]]);
+                    }
+
+                    break;
+
+                default:
+                    break;
+            }
+
+            next();
+        }
+    }
+}
+
+module.exports = ReqBody;
\ No newline at end of file