From 73ba4a4f0e03ba8aef14fcd8095d99e947d045c6 Mon Sep 17 00:00:00 2001
From: "fabio.ferreira3" <ffem@hcuge.ch>
Date: Wed, 12 Jun 2019 22:18:04 +0200
Subject: [PATCH] add request 7

---
 api/app/queries.js | 28 +++++++++++++++++++++-------
 api/app/router.js  |  4 +++-
 2 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/api/app/queries.js b/api/app/queries.js
index 9869e62..f813a53 100644
--- a/api/app/queries.js
+++ b/api/app/queries.js
@@ -107,7 +107,7 @@ exports.byAggregateCustomerId = (req, res) => {
     var id = Long.fromString(req.params.id);
     console.log(id);
 
-    //u.logReq(req);
+    u.logReq(req);
     db.collection('orders').aggregate([
         { $match: { 'customer.id': { $eq: id } } }
     ]).toArray((err, docs) => {
@@ -122,13 +122,8 @@ exports.byAggregateCustomerId = (req, res) => {
 
 
 exports.ordersAggregateByCustomer = (req, res) => {
-
-    var id = Long.fromString(req.params.id);
-    console.log(id);
-
-    //u.logReq(req);
+    u.logReq(req);
     db.collection('orders').aggregate([
-        //{ $match: { 'customer.id': { $eq: id } }},
         { $group: {
             _id : {id: "$customer.id", pseudo: "$customer.pseudo"},
             count: { $sum: 1}}
@@ -141,4 +136,23 @@ exports.ordersAggregateByCustomer = (req, res) => {
         console.log(docs);
         res.json(docs);
     });
+}
+
+
+exports.ordersAggregateCAVendor = (req, res) => {
+    u.logReq(req);
+    db.collection('orders').aggregate([
+        { $unwind: "$items" },
+        { $group: {
+            _id: "$items.vendor",
+            ChiffreAffaire: { $sum: { $multiply: ["$items.finalprice", "$items.qty"]}}
+        }}
+    ]).toArray((err, docs) => {
+        if (err) {
+            console.log(err);
+            res.send(err);
+        }
+        console.log(docs);
+        res.json(docs);
+    });
 }
\ No newline at end of file
diff --git a/api/app/router.js b/api/app/router.js
index e11973a..4111f14 100644
--- a/api/app/router.js
+++ b/api/app/router.js
@@ -19,7 +19,9 @@ router.get('/pseudo-with-more-equal-bags/:number', queries.showPseudoOfOrdersBag
 
 router.get('/by-customer-id/:id', queries.byAggregateCustomerId);
 
-router.get('/orders-by-customer/:id', queries.ordersAggregateByCustomer);
+router.get('/orders-by-customer', queries.ordersAggregateByCustomer);
+
+router.get('/ca-vendors', queries.ordersAggregateCAVendor);
 
 router.use((_, res) => res.status(404).send({ message: 'Route not found' }));
 
-- 
GitLab