formation 2 yıl önce
ebeveyn
işleme
c84ce76443

+ 136 - 23
angular-client/package-lock.json

@@ -2835,6 +2835,24 @@
       "integrity": "sha512-xbV74ulf5BwIA61jASjKxzS0gzD6CQQkqPXDRo8I1tpDMQpEKFKWivw+1Joy6Anm62DWR4xuMEhnj5kjKWemgw==",
       "dev": true
     },
+    "@nguniversal/common": {
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@nguniversal/common/-/common-9.1.1.tgz",
+      "integrity": "sha512-stYQzea9jhbs8XJDZEGcdHRVBrUp4wE3KMVufQNnQMbW/R+JpakGP6XBfPY3NLmqs/xJpVUIcIl3/6l5XxpR5A=="
+    },
+    "@nguniversal/express-engine": {
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@nguniversal/express-engine/-/express-engine-9.1.1.tgz",
+      "integrity": "sha512-K/4cY+mJgJu65HYyFz5L4wrUqtkYqsg/itXOWhPCeuzhBCVpJQntXq2z07sxM+Jl5EIbCi3jGa5wnm/17uti4w==",
+      "requires": {
+        "@nguniversal/common": "9.1.1"
+      }
+    },
+    "@nguniversal/module-map-ngfactory-loader": {
+      "version": "8.2.6",
+      "resolved": "https://registry.npmjs.org/@nguniversal/module-map-ngfactory-loader/-/module-map-ngfactory-loader-8.2.6.tgz",
+      "integrity": "sha512-YcxXSrDZt6iDR+YbesJvprNpHd1nRLeThJwAFlcwvK/GVGSyKeWV6eqk3bRkBkgkw8OwaG/4lOQ4aofxQw+13w=="
+    },
     "@schematics/angular": {
       "version": "9.1.4",
       "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.4.tgz",
@@ -3224,7 +3242,7 @@
     "after": {
       "version": "0.8.2",
       "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
-      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+      "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==",
       "dev": true
     },
     "agent-base": {
@@ -3648,7 +3666,7 @@
     "backo2": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+      "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==",
       "dev": true
     },
     "balanced-match": {
@@ -3920,7 +3938,6 @@
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "dev": true,
       "requires": {
         "fill-range": "^7.0.1"
       }
@@ -4579,7 +4596,7 @@
     "component-bind": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
-      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
+      "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==",
       "dev": true
     },
     "component-emitter": {
@@ -4591,7 +4608,7 @@
     "component-inherit": {
       "version": "0.0.3",
       "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
-      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+      "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==",
       "dev": true
     },
     "compressible": {
@@ -4675,7 +4692,7 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
           "dev": true
         }
       }
@@ -5269,7 +5286,7 @@
     "custom-event": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
-      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
+      "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
       "dev": true
     },
     "cyclist": {
@@ -5544,7 +5561,7 @@
     "di": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
-      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
+      "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
       "dev": true
     },
     "diff": {
@@ -5609,7 +5626,7 @@
     "dom-serialize": {
       "version": "2.2.1",
       "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
-      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+      "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
       "dev": true,
       "requires": {
         "custom-event": "~1.0.0",
@@ -5844,7 +5861,7 @@
     "ent": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
-      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
+      "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
       "dev": true
     },
     "entities": {
@@ -6547,7 +6564,6 @@
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "dev": true,
       "requires": {
         "to-regex-range": "^5.0.1"
       }
@@ -6579,7 +6595,7 @@
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
           "dev": true
         }
       }
@@ -7225,7 +7241,7 @@
         "isarray": {
           "version": "2.0.1",
           "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
+          "integrity": "sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==",
           "dev": true
         }
       }
@@ -7233,7 +7249,7 @@
     "has-cors": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
-      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+      "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==",
       "dev": true
     },
     "has-flag": {
@@ -7699,7 +7715,7 @@
     "indexof": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
-      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
+      "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==",
       "dev": true
     },
     "infer-owner": {
@@ -8095,8 +8111,7 @@
     "is-number": {
       "version": "7.0.0",
       "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
     },
     "is-number-object": {
       "version": "1.0.7",
@@ -14662,7 +14677,7 @@
     "to-array": {
       "version": "0.1.4",
       "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
-      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
+      "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==",
       "dev": true
     },
     "to-arraybuffer": {
@@ -14712,7 +14727,6 @@
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
       "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dev": true,
       "requires": {
         "is-number": "^7.0.0"
       }
@@ -14738,6 +14752,106 @@
       "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
       "dev": true
     },
+    "ts-loader": {
+      "version": "9.4.2",
+      "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz",
+      "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==",
+      "requires": {
+        "chalk": "^4.1.0",
+        "enhanced-resolve": "^5.0.0",
+        "micromatch": "^4.0.0",
+        "semver": "^7.3.4"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "enhanced-resolve": {
+          "version": "5.12.0",
+          "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
+          "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
+          "requires": {
+            "graceful-fs": "^4.2.4",
+            "tapable": "^2.2.0"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+        },
+        "lru-cache": {
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+          "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+          "requires": {
+            "yallist": "^4.0.0"
+          }
+        },
+        "micromatch": {
+          "version": "4.0.5",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+          "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+          "requires": {
+            "braces": "^3.0.2",
+            "picomatch": "^2.3.1"
+          }
+        },
+        "picomatch": {
+          "version": "2.3.1",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+          "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+        },
+        "semver": {
+          "version": "7.3.8",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+          "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+          "requires": {
+            "lru-cache": "^6.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "tapable": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+          "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
+        }
+      }
+    },
     "ts-node": {
       "version": "8.3.0",
       "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
@@ -15223,7 +15337,7 @@
     "void-elements": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
-      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+      "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
       "dev": true
     },
     "watchpack": {
@@ -16156,8 +16270,7 @@
     "yallist": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
+      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
     },
     "yargs": {
       "version": "12.0.5",
@@ -16399,7 +16512,7 @@
     "yeast": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
-      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
+      "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==",
       "dev": true
     },
     "yn": {

+ 3 - 0
angular-client/package.json

@@ -23,6 +23,8 @@
     "@angular/platform-browser": "~9.1.4",
     "@angular/platform-browser-dynamic": "~9.1.4",
     "@angular/router": "~9.1.4",
+    "@nguniversal/express-engine": "^9.1.1",
+    "@nguniversal/module-map-ngfactory-loader": "^8.2.6",
     "@types/jwt-decode": "^2.2.1",
     "@types/leaflet": "^1.5.12",
     "bootstrap": "^4.4.1",
@@ -36,6 +38,7 @@
     "ng2-charts": "^2.3.0",
     "rxjs": "~6.5.4",
     "saturn-datepicker": "^8.0.5",
+    "ts-loader": "^9.4.2",
     "tslib": "^1.10.0",
     "zone.js": "^0.11.3"
   },

+ 1 - 1
angular-client/src/app/components/auth/gain/gain-form/gain-form.component.html

@@ -4,7 +4,7 @@
           <form [formGroup]="formGroup" (ngSubmit)="sendCodeGain()">
             <!-- <mat-progress-bar class="row " *ngIf="loading" mode="indeterminate"></mat-progress-bar> -->
             <h1 class="row justify-content-center font-weight-bold">Tentez votre chance, et repartez peut-etre avec votre Range Rover</h1>
-            <h3 class="row justify-content-center">Entrez votre code</h3>
+            <h2 class="row justify-content-center">Entrez votre code</h2>
   
   
             <div class="row justify-content-center">

+ 2 - 2
angular-client/src/app/components/auth/gain/gain-list/gain-list.component.html

@@ -24,9 +24,9 @@
 
       <!-- isServed -->
       <ng-container matColumnDef="isServed">
-        <th mat-header-cell *matHeaderCellDef> Servé </th>
+        <th mat-header-cell *matHeaderCellDef> Servi </th>
         <td mat-cell *matCellDef="let element"  class="text-left">
-            <mat-icon *ngIf="element.isServed === true" class="icon mr-2" style="color:#4FC031">done_outline</mat-icon>
+            <mat-icon *ngIf="element.isServed === true" class="icon mr-2" style="color:#296119">done_outline</mat-icon>
             <mat-icon *ngIf="element.isServed === false" class="icon mr-2" style="color:rgb(67, 151, 230)">hourglass_bottom</mat-icon>
            </td>
       </ng-container>

+ 11 - 10
angular-client/src/app/components/home/home.component.html

@@ -1,22 +1,23 @@
 <div class="container navtop">
+        
+         <h1 class="text-center  gain mb-4">jeu-concours</h1>
 
     <div class="range">
-        <h4 class="text-center concours font-weight-bold">Du 16 juillet 2020 au 16 septembre 2020</h4>
+        <h2 class="text-center  gain mb-4">Tentez de gagner un Range Rover</h2>
+        <h3 class="text-center concours font-weight-bold">Du 16 juillet 2020 au 16 septembre 2020</h3>
         <h4 class="text-center concours">Pour tout achat d'une valeur de 18€ ou plus dans l'un de nos restaurants reçoit un code
             Promo</h4>
 
-        <h1 class="text-center  gain mb-4">Tentez de gagner un Range Rover</h1>
 
         <div class="row">
             <div class="col-12 col-md-6 order-2 order-md-1">
-                <h4 class="col-12 col-md-9">A l'occasion de l'ouverture de notre 100e restaurants Fatboar, Tentez de repartir avec
-                    un Range Rover d'une valeur de 59900€ en participant à notre Grand jeu-concours FatBoar.</h4>
+                <h4 class="col-12 col-md-9">A l'occasion de l'ouverture de notre 100e restaurants Fatboar, Tentez de repartir avec un Range Rover d'une valeur de 59900€ en participant à notre Grand jeu-concours FatBoar.</h4>
                 <h4 class="col-12 col-md-9">Il vous suffi d'une seule participation à notre jeu concours pour avoir une chance d'être tiré au sort et gagner votre Range Rover !</h4>
                 <h4 class="col-12 col-md-9">A noter que chacunes de vos participations vous offrons  une récompences !</h4>
             </div>
 
             <div class="col-12 col-md-6 order-1 order-md-2">
-                <img class="rangeRover"  [src]="getImgRange()" width="80%">
+                <img class="rangeRover"  [src]="getImgRange()" alt="Image of rangeRover" width="80%">
             </div>
 
         </div>
@@ -34,18 +35,18 @@
 
         <div class="row mt-5">
             <div class="col-4">
-                <img [src]="getDessert()"  width="100%" >
+                <img [src]="getDessert()" alt="A description of dessert au choix"  width="100%" >
                 <h2 class="text-center font-weight-bold dessert">Un dessert au choix</h2>
                
             </div>
             <div class="col-4">
                
-                <img [src]="getBurger()" width="90%">
+                <img [src]="getBurger()" alt="A description burger au choix"  width="90%">
                 <h2 class="text-center font-weight-bold">Un burger au choix</h2>
             </div>
             <div class="col-4">
                 
-                <img [src]="getMenuJour()" width="60%">
+                <img [src]="getMenuJour()" alt="A description of menu du jour"  width="60%">
                 <h2 class="text-center font-weight-bold">Un menu du jour</h2>
             </div>
         </div>
@@ -53,12 +54,12 @@
         <div class="row justify-content-center">
             <div class="col-4">
                 
-                <img [src]="getMenuChoix()" width="90%">
+                <img [src]="getMenuChoix()" alt="A description of menu au choix"  width="90%">
                 <h2 class="text-center font-weight-bold">Un menu au choix</h2>
             </div>
             <div class="col-4">
                
-                <img [src]="getReduction()" width="90%">
+                <img [src]="getReduction()" alt="A description of 70% de réduction"  width="90%">
                 <h2 class="text-center font-weight-bold">70% de réduction</h2>
             </div>
         </div>

+ 8 - 4
angular-client/src/app/components/login/login.component.html

@@ -13,7 +13,7 @@
           <h1 class="row justify-content-center"><b>Connexion</b></h1>
 
           <div class="row justify-content-center mb-3">
-            <button mat-raised-button class="col-10 col-md-8 googlelogin" style="background-color: #DB4437; color: white;">
+            <button mat-raised-button class="col-10 col-md-8 googlelogin" style="background-color: #AD0505; color: white;">
               <div class="row mt-1 ml-3">
                 <mat-icon class="ml-2" svgIcon="googleLogo"></mat-icon>
                 <p class="ml-2 marginButton">Se connecter avec Google</p>
@@ -22,7 +22,7 @@
           </div>
 
           <div class="row justify-content-center ">
-            <button mat-raised-button class="col-10 col-md-8 facebooklogin" style="background-color: #3b5998; color: white;">
+            <button mat-raised-button class="col-10 col-md-8 facebooklogin" style="background-color: #2121A1; color: white;">
               <div class="row mt-1 ml-3">
                 <mat-icon class="ml-2" svgIcon="facebookLogo"></mat-icon>
                 <p class="ml-2 marginButton">Se connecter avec Facebook</p>
@@ -67,8 +67,12 @@
           <div class="row justify-content-center mt-3">
             <button class="col-6 color-theme" mat-raised-button color="primary" type="submit">Se connecter</button>
           </div>
-          <p class="row justify-content-center mt-3"> <a routerLink="/login/lost-password">Mot de passe oublié ?</a></p>
-          <p class="row justify-content-center">Vous n'avez pas encore de compte?<a class="ml-1" routerLink="/register"> Créer un compte</a></p>
+          <p class="row justify-content-center mt-3"> <a _ngcontent-yhd-c250="" routerlink="/login/lost-password" ng-reflect-router-link="/login/lost-password" href="/login/lost-password" style="color: rgb(0, 81, 168); background-color: rgb(255, 255, 255);">
+            Mot de passe oublié ?
+            </a></p>
+          <p class="row justify-content-center">Vous n'avez pas encore de compte?<a _ngcontent-yhd-c250="" routerlink="/register" class="ml-1" ng-reflect-router-link="/register" href="/register" style="color: rgb(0, 81, 168); background-color: rgb(255, 255, 255);">
+Créer un compte
+</a></p>
         </form>
       </mat-card-content>
     </mat-card>

+ 17 - 13
angular-client/src/app/components/register/register.component.html

@@ -6,18 +6,17 @@
         <mat-card-content>
           <form [formGroup]="formGroup" (ngSubmit)="signUp()">
             <mat-progress-bar class="row " *ngIf="loading" mode="indeterminate"></mat-progress-bar>
+            <h1 class="row justify-content-center"><b>Inscription</b></h1>
+
             <div class="row justify-content-center ">
-              <button (click)="signGoogle()" mat-raised-button class="col-10 col-lg-5 mr-lg-2 mb-2 googlelogin" style="background-color: #DB4437; color: white;">
+              <button (click)="signWithGoogle()" mat-raised-button class="col-10 col-lg-5 mr-lg-2 mb-2 googlelogin" style="background-color: #AD0505; color: white;">
                 <div class="row mt-1 ml-3">
                   <mat-icon class="ml-2" svgIcon="googleLogo"></mat-icon>
                   <p class="ml-2 marginButton">Se connecter avec Google</p>
                 </div>
               </button>
-            <h1 class="row justify-content-center"><b>Inscription</b></h1>
-  
-           
             
-              <button mat-raised-button class="col-10 col-lg-5 ml-lg-2 mb-2 facebooklogin" style="background-color: #3b5998; color: white;">
+              <button mat-raised-button class="col-10 col-lg-5 ml-lg-2 mb-2 facebooklogin" style="background-color: #2121A1; color: white;">
                 <div class="row mt-1 ml-3">
                   <mat-icon class="ml-2" svgIcon="facebookLogo"></mat-icon>
                   <p class="ml-2 marginButton">Se connecter avec Facebook</p>
@@ -110,15 +109,20 @@
               </mat-form-field>
             </div>
             <div class="row justify-content-center">
-              <div class="control" controlErrorContainer>
-                <label class="checkbox">
-                <input type="checkbox" formControlName="terms" [customErrors]="customErrors">
-                <p class="row justify-content-center mt-3"> J'ai lu et j'accepte <a href="#"> les conditions générales d'utilisation </a> et j'ai pris connaissance de la <a href="#"> politique de confidentialité.</a></p>
+              
+                <span class="stay-signed in checkbox-container">
+                  <label class="terms">
+                    <input type="checkbox" formControlName="terms" [customErrors]="customErrors">
+                    J'ai lu et j'accepte <a href="#"> les conditions générales d'utilisation </a> et j'ai pris connaissance de la <a href="#"> politique de confidentialité.</a>
+                  </label>
+                
+                <label class="terms">
+                  <mat-error *ngIf="!formGroup.controls['terms'].valid || formGroup.controls['terms'].touched">
+                    {{ getErrorTerms() }}
+                  </mat-error>
                 </label>
-                <mat-error *ngIf="!formGroup.controls['terms'].valid || formGroup.controls['terms'].touched">
-                  {{ getErrorTerms() }}
-                </mat-error>
-              </div>
+              </span>
+
             </div>
 
 

+ 10 - 4
angular-client/src/app/components/register/register.component.scss

@@ -8,10 +8,16 @@
   }
   
 .terms{  
-  display: block;
-  margin-left: 3.5rem;
+  display: inline-block;
+  margin-inline: 4.5rem;
+  margin-top: 0.5rem;
   }
 
   .test{ 
-  font-size: x-small;
-}
+    display: block;
+    margin-left: 3.5rem;
+}
+.checkbox{  
+  display: block;
+  margin-right: 3.5rem;
+  }

+ 15 - 6
angular-client/src/app/components/register/register.component.ts

@@ -18,6 +18,7 @@ const facebookLogoURL = "../assets/img/social/facebook.svg";
   styleUrls: ['./register.component.scss']
 })
 export class RegisterComponent implements OnInit {
+  http: any;
 
   constructor(public router: Router, private authService : AuthService, private formBuilder: FormBuilder, private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer) 
    { this.matIconRegistry.addSvgIcon("googleLogo", this.domSanitizer.bypassSecurityTrustResourceUrl(googleLogoURL)),
@@ -52,7 +53,7 @@ export class RegisterComponent implements OnInit {
       firstname: [null, [Validators.required, Validators.pattern(caracereregex)]],
       phonenumber: [null,[Validators.required, Validators.pattern(phonenumberregex)]],
       birthday: [null,[Validators.required]],
-      terms: ['', Validators.requiredTrue],
+      terms: [false, Validators.requiredTrue],
       adress: [null,[Validators.required, Validators.pattern(adressregex)]],
       email: [null, [Validators.required, Validators.pattern(emailregex)]],
       password: [null, [Validators.required, this.checkPassword]],
@@ -99,7 +100,7 @@ export class RegisterComponent implements OnInit {
   getErrorTerms(){
 
     return this.formGroup.get('terms').hasError('required') ? 'Please accept the terms' : 
-    this.formGroup.get('terms').hasError('pattern') ? 'Date de naissance non valide' : '';
+    this.formGroup.get('terms').hasError('pattern') ? 'terms not accepted' : '';
 
   }
 
@@ -139,8 +140,16 @@ export class RegisterComponent implements OnInit {
   //   });
   // }
    //google signIn
-   signGoogle(){
-    window.location.href =`http://localhost:4000/api/auth/google`
+   
+   signWithGoogle() {
+
+    this.authService.signWithGoogle().subscribe((res) => {
+      console.log(res);
+    });
+        
+
+  }
+    //window.location.href =`http://localhost:4000/api/auth/google`
     // this.authService.signGoogle().subscribe(
     //   data=> {
     //       console.log(data); 
@@ -149,10 +158,10 @@ export class RegisterComponent implements OnInit {
     //   error=> {
     //       console.log(error);
     // });
-  }
+  
 
 
-   signUp(){
+   signUp(): void{
 
     this.submitted = true;
     if (this.formGroup.invalid) {

+ 26 - 18
angular-client/src/app/components/shared/contact/information/information.component.html

@@ -1,25 +1,33 @@
-
-    
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <title>FatBoar - Page de contact où un client peut venir faire une réclamation ou bien si il a besoins d'informations par rapport au jeu concours</title>
+    <!-- autres balises meta ici -->
+  </head>
+  <body>
     <h1 class="text-center">FatBoar</h1>
+  </body>  
 
-     <div class="info">
-    <a  mat-list-item >
-        <mat-icon class="icon mr-2">room</mat-icon>
-        <span class="label ">1 Bis Rue Gustave Eiffel, 78280 Guyancourt</span>
-      </a>
+    <div class="info">
+   <a  mat-list-item >
+       <mat-icon class="icon mr-2">room</mat-icon>
+       <span class="label ">1 Bis Rue Gustave Eiffel, 78280 Guyancourt</span>
+     </a>
 
-      <a  mat-list-item type="button">
-        <mat-icon class="mr-2">phone_enabled</mat-icon>
-        <label class="">01 74 56 64 31</label>
-      </a>
+     <a  mat-list-item type="button">
+       <mat-icon class="mr-2">phone_enabled</mat-icon>
+       <label class="">01 74 56 64 31</label>
+     </a>
 
-      <a  mat-list-item >
-        <mat-icon class="icon mr-2">email</mat-icon>
-        <span class="label "></span>  <label class="">contact@fatboar.fr</label>
-      </a>
+     <a  mat-list-item >
+       <mat-icon class="icon mr-2">email</mat-icon>
+       <span class="label "></span>  <label class="">contact@fatboar.fr</label>
+     </a>
 
     </div>
+    
+   </html>
 
-
-     
-  
+    
+ 

+ 18 - 18
angular-client/src/app/components/shared/footer/footer.component.html

@@ -9,20 +9,20 @@
           
           <div class="col-12 mb-2 ">
             <a routerLink="/" routerLinkActive="active" class="row justify-content-center" >
-              <img  width="80" height="80" src="assets/img/logo-fatboar.png">
+              <img  width="80" height="80" src="assets/img/logo-fatboar.png" alt="An image of logo-fatboar">
             </a>
           </div>
 
           <div class="col-12 mt-2 ">
             <div class="row justify-content-center">
             <a href="" class="mr-2">
-              <img width="30" height="30" src="assets/img/social/twitter.svg"  />
+              <img width="30" height="30" src="assets/img/social/twitter.svg" alt="Twitter logo linking to the Fatboar twitter page"  />
             </a>
             <a href="" class="mr-2 ">
-              <img  width="30" height="30" src="assets/img/social/facebook.svg" />
+              <img  width="30" height="30" src="assets/img/social/facebook.svg" alt="Facebook logo linking to the Fatboar facebook page" />
             </a>
             <a href="" class="">
-              <img  width="30" height="30" src="assets/img/social/instagram.svg" />
+              <img  width="30" height="30" src="assets/img/social/instagram.svg" alt="Instagram logo linking to the FatBoar instagram page" />
             </a>
           </div>
           </div>
@@ -33,15 +33,15 @@
        <!-- 2222222222 -->
       <div class="col-md-3  col-12">
         <div class="row ">
-          <h2 class="col-md-12 text-md-left text-center">Informations utiles</h2>
-          <a class="col-md-12 text-md-left text-center" href="#ccm">
-            <h5 class="col-md-12 text-md-left text-center" style="color: white !important">Comment ça marche ?</h5>
+          <h3 class="col-md-12 text-md-left text-center">Informations utiles</h3>
+          <a class="col-md-12 text-md-left text-center" href="">
+            <h4 class="col-md-12 text-md-left text-center" style="color: white !important">Comment ça marche ?</h4>
           </a>
           <a class="col-md-12 text-md-left text-center" href="">
-            <h5 class="col-md-12 text-md-left text-center" style="color: white !important">Qui sommes-nous ?</h5>
+            <h4 class="col-md-12 text-md-left text-center" style="color: white !important">Qui sommes-nous ?</h4>
           </a>
           <a class="col-md-12 text-md-left text-center" href="">
-            <h5 class="col-md-12 text-md-left text-center" style="color: white !important">FatBoar pour ses clients</h5>
+            <h4 class="col-md-12 text-md-left text-center" style="color: white !important">FatBoar pour ses clients</h4>
           </a>
         </div>
       </div>
@@ -49,15 +49,15 @@
       <!-- 3333333333333 -->
       <div class="col-md-3 col-12">
         <div class="row">
-          <h2 class="col-md-12 text-md-left text-center">Informations légales</h2>
+          <h3 class="col-md-12 text-md-left text-center">Informations légales</h3>
           <a routerLink="cgu" class="col-md-12">
-            <h5 class="col-md-12 text-md-left text-center">Conditions générales d'utilisation</h5>
+            <h4 class="col-md-12 text-md-left text-center">Conditions générales d'utilisation</h4>
           </a>
           <a routerLink="mention-legales" class="col-md-12">
-            <h5 class="col-md-12 text-md-left text-center">Mention légales</h5>
+            <h4 class="col-md-12 text-md-left text-center">Mention légales</h4>
           </a>
           <a routerLink="politique-de-confidentialite" class="col-md-12">
-            <h5 class="col-md-12 text-md-left text-center" >Politique de confidentialité</h5>
+            <h4 class="col-md-12 text-md-left text-center" >Politique de confidentialité</h4>
           </a>
         </div>
       </div>
@@ -65,12 +65,12 @@
       <!-- 444444444444 -->
       <div class="col-md-3 col-12 mb-3">
         <div class="row">
-          <h2 class="col-md-12 text-md-left text-center">Nous contacter</h2>
-          <h5 class="col-md-12 text-md-left text-center">Service client : <b>01 74 56 64 31</b></h5>
-          <h5 class="col-md-12 text-md-left text-center">De 9h à 12h et de 13h à 19h</h5>
-          <h5 class="col-md-12 text-md-left text-center">du lundi au vendredi</h5>
+          <h3 class="col-md-12 text-md-left text-center">Nous contacter</h3>
+          <h4 class="col-md-12 text-md-left text-center">Service client : <b>01 74 56 64 31</b></h4>
+          <h4 class="col-md-12 text-md-left text-center">De 9h à 12h et de 13h à 19h</h4>
+          <h4 class="col-md-12 text-md-left text-center">du lundi au vendredi</h4>
           <a href="mailto:" class="col-md-12 text-md-left text-center">
-            <h5 class="col-md-12 text-md-left text-center"><b>Envoyer un mail</b></h5>
+            <h4 class="col-md-12 text-md-left text-center"><b>Envoyer un mail</b></h4>
           </a>
 
         </div>

+ 1 - 0
angular-client/src/app/models/userResponse.ts

@@ -14,6 +14,7 @@ export interface User {
     lastname: string;
     email: string;
     role: string;
+    googleId: string;
     birthday: Date;
     phonenumber: number;
     adress: string;

+ 17 - 2
angular-client/src/app/services/auth.service.ts

@@ -7,10 +7,11 @@ import { BehaviorSubject, Observable } from 'rxjs';
 import { Router } from '@angular/router';
 import { MatSnackBar } from '@angular/material/snack-bar';
 import { AlertMessageComponent } from 'src/app/components/shared/alert-message/alert-message.component'
-import { map } from 'rxjs/operators';
+import { map, tap } from 'rxjs/operators';
 import * as jwt_decode from 'jwt-decode';
 
 
+
 @Injectable({
   providedIn: 'root'
 })
@@ -19,6 +20,8 @@ export class AuthService {
   //url api
   private apiUrl = environment.apiUrl
 
+  
+
 
   private tokenSubject: BehaviorSubject<Token>;
   public token: Observable<Token>;
@@ -66,6 +69,18 @@ export class AuthService {
         return token;
       }));
   }
+
+  signWithGoogle(): Observable<any> {
+    
+    return this.http.get(`${this.apiUrl}/api/auth/google`).pipe(tap(data => {
+      debugger;
+          // store jwt token in local storage 
+          localStorage.setItem('jwt', data.token);
+          
+          
+        }));
+  }
+  
    // login google
     // signGoogle(): Observable<User> {
     //   //debugger;
@@ -140,7 +155,7 @@ resetPassword(data): Observable<any> {
 
   // get info user 
   getUserInfo(): Observable<User> {
-    
+    debugger;
     let decodedToken : payloadToken = jwt_decode(this.tokenSubject.value.token); 
     return this.http.get<User>(`${this.apiUrl}/api/users/${decodedToken.userId}`)
       .pipe(map(user => {

+ 1 - 1
angular-client/src/app/services/users.service.ts

@@ -28,7 +28,7 @@ getUsers(page: number, limit:number, lastname:string, firstname:string, email:st
 
 // get user
 getOneUser(id: string): Observable <User> {
-  return this.http.get<User>(`${this.apiUrl}/${id}`);
+  return this.http.get<User>(`${this.apiUrl}/api/${id}`);
 }
 
 

+ 26 - 20
express-server/index.js

@@ -3,7 +3,7 @@ const bodyparser = require('body-parser');
 const passport = require('passport');
 const mongoose = require('mongoose');
 const session = require('express-session');
-//const cors = require('cors');
+const cors = require('cors');
 // const config = require('./config/db.config');
 
 
@@ -30,6 +30,16 @@ const metricsMiddleware = promBundle({includeMethod: true, includePath: true});
 
 const app = express();
 
+app.use(cors({
+  origin: 'http://localhost:4200',
+  methods: ['GET', 'POST'],
+  allowedHeaders: ['Content-Type', 'Authorization']
+}));
+
+
+
+
+
 Logger.error('hello world', 'Nan c est juste pour tester les logs')
 
 app.use(metricsMiddleware);
@@ -44,27 +54,23 @@ app.get("/api", (req, res) => {
     res.status(200).send("Api Works.");
   });
 
-  // var corsOptions = {
-  //   origin: 'https://localhost:4200',
-  //   optionsSuccessStatus: 200 
-  // }
-
+  
 //Définition des CORS Middleware 
-app.use(function(req, res, next) {
+// app.use(function(req, res, next) {
   
-    //res.header("Access-Control-Allow-Origin", "*");
-    res.setHeader("Access-Control-Allow-Origin", "*");
-    res.setHeader(
-      "Access-Control-Allow-Headers",
-      "X-Requested-With,content-type, Accept,Authorization,Origin"
-    );
-    res.setHeader(
-      "Access-Control-Allow-Methods",
-      "GET, POST, OPTIONS, PUT, PATCH, DELETE"
-    );
-    res.setHeader("Access-Control-Allow-Credentials", true);
-    next();
-  });
+//     //res.header("Access-Control-Allow-Origin", "*");
+//     res.setHeader("Access-Control-Allow-Origin", "*");
+//     res.setHeader(
+//       "Access-Control-Allow-Headers",
+//       "X-Requested-With,content-type, Accept,Authorization,Origin"
+//     );
+//     res.setHeader(
+//       "Access-Control-Allow-Methods",
+//       "GET, POST, OPTIONS, PUT, PATCH, DELETE"
+//     );
+//     res.setHeader("Access-Control-Allow-Credentials", true);
+//     next();
+//   });
 
 
 // parse requests  body params

+ 6 - 0
express-server/node_modules/body-parser/HISTORY.md

@@ -1,3 +1,9 @@
+1.20.1 / 2022-10-06
+===================
+
+  * deps: qs@6.11.0
+  * perf: remove unnecessary object clone
+
 1.20.0 / 2022-04-02
 ===================
 

+ 1 - 1
express-server/node_modules/body-parser/README.md

@@ -346,7 +346,7 @@ call `req.setEncoding` when using this module. The `status` property is set to
 
 This error will occur when the request is no longer readable when this middleware
 attempts to read it. This typically means something other than a middleware from
-this module read the reqest body already and the middleware was also configured to
+this module read the request body already and the middleware was also configured to
 read the same request. The `status` property is set to `500` and the `type`
 property is set to `'stream.not.readable'`.
 

+ 8 - 9
express-server/node_modules/body-parser/index.js

@@ -91,16 +91,15 @@ Object.defineProperty(exports, 'urlencoded', {
  */
 
 function bodyParser (options) {
-  var opts = {}
-
-  // exclude type option
-  if (options) {
-    for (var prop in options) {
-      if (prop !== 'type') {
-        opts[prop] = options[prop]
-      }
+  // use default type for parsers
+  var opts = Object.create(options || null, {
+    type: {
+      configurable: true,
+      enumerable: true,
+      value: undefined,
+      writable: true
     }
-  }
+  })
 
   var _urlencoded = exports.urlencoded(opts)
   var _json = exports.json(opts)

+ 17 - 15
express-server/node_modules/body-parser/package.json

@@ -1,10 +1,12 @@
 {
   "_from": "body-parser@^1.19.0",
-  "_id": "body-parser@1.20.0",
+  "_id": "body-parser@1.20.1",
   "_inBundle": false,
-  "_integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+  "_integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
   "_location": "/body-parser",
-  "_phantomChildren": {},
+  "_phantomChildren": {
+    "side-channel": "1.0.4"
+  },
   "_requested": {
     "type": "range",
     "registry": true,
@@ -16,11 +18,11 @@
     "fetchSpec": "^1.19.0"
   },
   "_requiredBy": [
-    "/",
-    "/express"
+    "#USER",
+    "/"
   ],
-  "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
-  "_shasum": "3de69bd89011c11573d7bfee6a64f11b6bd27cc5",
+  "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+  "_shasum": "b1812a8912c195cd371a3ee5e66faa2338a5c668",
   "_spec": "body-parser@^1.19.0",
   "_where": "C:\\FatboarProject\\express-server",
   "bugs": {
@@ -47,7 +49,7 @@
     "http-errors": "2.0.0",
     "iconv-lite": "0.4.24",
     "on-finished": "2.4.1",
-    "qs": "6.10.3",
+    "qs": "6.11.0",
     "raw-body": "2.5.1",
     "type-is": "~1.6.18",
     "unpipe": "1.0.0"
@@ -55,18 +57,18 @@
   "deprecated": false,
   "description": "Node.js body parsing middleware",
   "devDependencies": {
-    "eslint": "7.32.0",
+    "eslint": "8.24.0",
     "eslint-config-standard": "14.1.1",
-    "eslint-plugin-import": "2.25.4",
-    "eslint-plugin-markdown": "2.2.1",
+    "eslint-plugin-import": "2.26.0",
+    "eslint-plugin-markdown": "3.0.0",
     "eslint-plugin-node": "11.1.0",
-    "eslint-plugin-promise": "5.2.0",
+    "eslint-plugin-promise": "6.0.1",
     "eslint-plugin-standard": "4.1.0",
     "methods": "1.1.2",
-    "mocha": "9.2.2",
+    "mocha": "10.0.0",
     "nyc": "15.1.0",
     "safe-buffer": "5.2.1",
-    "supertest": "6.2.2"
+    "supertest": "6.3.0"
   },
   "engines": {
     "node": ">= 0.8",
@@ -92,5 +94,5 @@
     "test-ci": "nyc --reporter=lcov --reporter=text npm test",
     "test-cov": "nyc --reporter=html --reporter=text npm test"
   },
-  "version": "1.20.0"
+  "version": "1.20.1"
 }

+ 35 - 4
express-server/package-lock.json

@@ -320,9 +320,9 @@
       "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="
     },
     "body-parser": {
-      "version": "1.20.0",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
-      "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+      "version": "1.20.1",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
+      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
       "requires": {
         "bytes": "3.1.2",
         "content-type": "~1.0.4",
@@ -332,10 +332,20 @@
         "http-errors": "2.0.0",
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
-        "qs": "6.10.3",
+        "qs": "6.11.0",
         "raw-body": "2.5.1",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
+      },
+      "dependencies": {
+        "qs": {
+          "version": "6.11.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
+          "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
+          "requires": {
+            "side-channel": "^1.0.4"
+          }
+        }
       }
     },
     "brace-expansion": {
@@ -660,6 +670,27 @@
         "type-is": "~1.6.18",
         "utils-merge": "1.0.1",
         "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "body-parser": {
+          "version": "1.20.0",
+          "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+          "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+          "requires": {
+            "bytes": "3.1.2",
+            "content-type": "~1.0.4",
+            "debug": "2.6.9",
+            "depd": "2.0.0",
+            "destroy": "1.2.0",
+            "http-errors": "2.0.0",
+            "iconv-lite": "0.4.24",
+            "on-finished": "2.4.1",
+            "qs": "6.10.3",
+            "raw-body": "2.5.1",
+            "type-is": "~1.6.18",
+            "unpipe": "1.0.0"
+          }
+        }
       }
     },
     "express-list-endpoints": {

+ 1 - 1
express-server/package.json

@@ -16,7 +16,7 @@
   "dependencies": {
     "api-express-exporter": "^1.0.0",
     "bcrypt": "^5.0.1",
-    "body-parser": "^1.19.0",
+    "body-parser": "^1.20.1",
     "cors": "^2.8.5",
     "dayjs": "^1.8.29",
     "dotenv": "^16.0.1",

+ 2 - 2
express-server/routes/google.js

@@ -140,9 +140,9 @@ async () => {
 router.get('/callback',  passport.authenticate('google', { failureRedirect: '/failed' }),
   async (req, res) => {
       console.log('je susi dans ma fonction callback ', req.user)
-      const accessToken = jwt.sign({ userId: req.user._id, email: req.user.email, role: req.user.role }, config.secret_key, { expiresIn: '10 h' })
+      const token = jwt.sign({ userId: req.user._id, email: req.user.email, role: req.user.role }, config.secret_key, { expiresIn: '10 h' })
        //res.status(200).json({ success: true, token, expireIn: `${new Date().getTime() + 120000}` })
-      res.redirect(`http://localhost:4200/auth?access_token=${accessToken}`);
+      res.redirect(`http://localhost:4200/auth?token=${token}`);
     });