From 31cd742c93a1a04cb5dbed852413659bdca0f941 Mon Sep 17 00:00:00 2001
From: ddamiron <ddamiron@sii.fr>
Date: Tue, 30 Jul 2019 15:56:53 +0200
Subject: [PATCH] remove useless libraries add slug/uuid auto detection in home
 input form

---
 .../logs-home/logs-home.component.html        |  6 +--
 .../logs-home/logs-home.component.ts          | 48 +++++++++----------
 .../logs-sessions/logs-sessions.component.ts  |  4 --
 .../logs-slugs/logs-slugs.component.ts        |  4 --
 .../report/logs-error/logs-error.component.ts |  4 +-
 .../logs-graph/logs-graph.component.html      |  6 +--
 .../report/logs-graph/logs-graph.component.ts | 12 +++--
 .../report/logs-info/logs-info.component.ts   |  4 +-
 .../logs-pre-report.component.ts              |  1 -
 .../logs-report/logs-report.component.html    |  3 ++
 .../logs-report/logs-report.component.ts      | 21 ++++----
 src/app/services/data-logs.service.ts         | 10 ++++
 12 files changed, 62 insertions(+), 61 deletions(-)

diff --git a/src/app/components/logs-dashboard/logs-home/logs-home.component.html b/src/app/components/logs-dashboard/logs-home/logs-home.component.html
index 08f25bd..16a0e18 100644
--- a/src/app/components/logs-dashboard/logs-home/logs-home.component.html
+++ b/src/app/components/logs-dashboard/logs-home/logs-home.component.html
@@ -7,7 +7,7 @@
         <div class="table">
           <div class="header columns is-marginless">
             <div class="column is-5 has-text-left">
-              <label> Slug/Uuid </label>
+              <label> Slug/Uuid {{test}} </label>
             </div>
             <div class="column is-5 has-text-left">
               <label> Session Id </label>
@@ -15,7 +15,6 @@
             <div class="column is-2 has-text-left">
             </div>
           </div>
-
           <div class="data-list">
             <div class="data columns is-multiline is-vcentered is-marginless">
               <div class="column is-5 has-text-left">
@@ -25,7 +24,7 @@
                 <input class="input" type="text" size="45" name="sessionId" [(ngModel)]="sessionId">
               </div>
               <div class="column  is-2 has-text-left">
-                <a class="button button-gl " [routerLink]="['report', slug, sessionId, 'home']">
+                <a class="button button-gl " (click)="uuidDetector(slug)">
                   <i class="fas fa-search"></i>
                 </a>
               </div>
@@ -38,7 +37,6 @@
       <!-- Tabs -->
       <ul class="tabs-container">
         <li *ngFor="let tab of tabs" (click)="tabsToggler(tab.name)" [ngClass]="{'is-active':tab.isActive}">
-          <!-- [routerLink]="tab.fullRouterLinkPath" routerLinkActive="is-active" -->
           <span class="tab-label">{{ tab.name }}</span>
         </li>
       </ul>
diff --git a/src/app/components/logs-dashboard/logs-home/logs-home.component.ts b/src/app/components/logs-dashboard/logs-home/logs-home.component.ts
index c31966a..fee711b 100644
--- a/src/app/components/logs-dashboard/logs-home/logs-home.component.ts
+++ b/src/app/components/logs-dashboard/logs-home/logs-home.component.ts
@@ -1,6 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { DataLogsService } from 'src/app/services/data-logs.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
+import { ActivatedRoute, Router, ParamMap } from '@angular/router';
 import { ILogs } from 'src/app/models/logs.model';
 import { ISimpleTab } from 'src/app/models/basic-tabs.model';
 import { IPageHeaderInfo } from 'src/app/models/page.model';
@@ -16,9 +16,10 @@ export class LogsHomeComponent implements OnInit {
   };
   isDashboardDisplayed: boolean = false;
   uuid: string;
+  isUuid: boolean = false;
   allFields: any;
   sessionId: string;
-  slug: string;
+  slug: any;
   data: any;
   stepData: ILogs;
   allStepsData: any;
@@ -35,8 +36,9 @@ export class LogsHomeComponent implements OnInit {
   ];
   sessionIdList: [string];
   constructor(
-    private dataLogsService: DataLogsService,
-    private route: ActivatedRoute,
+    private _dataLogsService: DataLogsService,
+    private _route: ActivatedRoute,
+    private _router: Router,
   ) { }
 
   ngOnInit() {
@@ -51,27 +53,8 @@ export class LogsHomeComponent implements OnInit {
 
   }
 
-  onSubmit() {
-    this.isDashboardDisplayed = true;
-    this.isToggled = false;
-    this.dataLogsService.uuidToSessionId(this.uuid)
-    .subscribe((result) => {
-      this.data.uuid = result[0]._id.uuid;
-      this.data.sessionIdList = result[0].session_id_list;
-    },
-    );
-    this.dataLogsService.getAllStepsDuration(
-    this.uuid,
-    this.sessionId,
-  ).subscribe((results) => {
-    // console.log('results', results);
-    this.allStepsData = results;
-  },
-  );
-  }
-
   getAllUniqueFields() {
-    this.dataLogsService.getAllUniqueFields().subscribe((result) => {
+    this._dataLogsService.getAllUniqueFields().subscribe((result) => {
       this.allFields = result[0];
       this.nbSessionId = result[0]['session_id_list'].length;
       this.nbUuid = result[0]['uuid_list'].length;
@@ -93,4 +76,21 @@ export class LogsHomeComponent implements OnInit {
     }
   }
 
+  uuidDetector(testInput) {
+    const trimmedTestInput = testInput.trim();
+    const regexp = new RegExp('^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$');
+    this.isUuid = regexp.test(trimmedTestInput);
+    if (this.isUuid) {
+      this.convertUuidToSlugAndNavigate(trimmedTestInput);
+    } else {
+      this._router.navigate([this._route, 'report', trimmedTestInput, this.sessionId, 'home']);
+    }
+  }
+
+  convertUuidToSlugAndNavigate(uuidInput) {
+    this._dataLogsService.getSlugFromUuid(uuidInput).subscribe((result) => {
+      this._router.navigate([this._route, 'report', result, this.sessionId, 'home']);
+    },
+    );
+  }
 }
diff --git a/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts b/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts
index 6b6a0b3..41a1410 100644
--- a/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts
+++ b/src/app/components/logs-dashboard/logs-sessions/logs-sessions.component.ts
@@ -1,10 +1,6 @@
 import { Component, OnChanges, SimpleChanges, Input } from '@angular/core';
 import { DataLogsService } from 'src/app/services/data-logs.service';
 import { PaginatorOptions } from 'src/app/models/paginator-options.model';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { switchMap } from 'rxjs/operators';
-import { ILogs } from 'src/app/models/logs.model';
-import { FormsModule } from '@angular/forms';
 import { Subscription } from 'rxjs';
 
 @Component({
diff --git a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts
index d6068ca..e47fb2e 100644
--- a/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts
+++ b/src/app/components/logs-dashboard/logs-slugs/logs-slugs.component.ts
@@ -1,10 +1,6 @@
 import { Component, OnChanges, SimpleChanges, Input } from '@angular/core';
 import { DataLogsService } from 'src/app/services/data-logs.service';
 import { PaginatorOptions } from 'src/app/models/paginator-options.model';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { switchMap } from 'rxjs/operators';
-import { ILogs } from 'src/app/models/logs.model';
-import { FormsModule } from '@angular/forms';
 import { Subscription } from 'rxjs';
 
 @Component({
diff --git a/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts b/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts
index 0928ae0..6cbd7ce 100644
--- a/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts
+++ b/src/app/components/logs-dashboard/report/logs-error/logs-error.component.ts
@@ -1,9 +1,7 @@
 import { Component, OnChanges, SimpleChanges, Input } from '@angular/core';
 import { DataLogsService } from 'src/app/services/data-logs.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { switchMap } from 'rxjs/operators';
+import { ActivatedRoute } from '@angular/router';
 import { ILogs } from 'src/app/models/logs.model';
-import { FormsModule } from '@angular/forms';
 import { PaginatorOptions } from 'src/app/models/paginator-options.model';
 import { Subscription } from 'rxjs';
 
diff --git a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html
index 0ed76e4..a5eb9c1 100644
--- a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html
+++ b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.html
@@ -2,18 +2,16 @@
   <div>
     <div class="section">
       <div class="graph-component">
-
+        <h3>{{errorMessage}}</h3>
         <a class="button button-gl is-centered" (click)="replotGraph()">
           Reload Chart
         </a>
         <div class="columns is-centered">
           <div class="graph-div-canvas">
-
             <canvas id="graphCanvas">{{ chart }}</canvas>
-
           </div>
         </div>
       </div>
     </div>
   </div>
-</ng-container>
+</ng-container>
\ No newline at end of file
diff --git a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts
index c03790b..20df233 100644
--- a/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts
+++ b/src/app/components/logs-dashboard/report/logs-graph/logs-graph.component.ts
@@ -1,10 +1,6 @@
 import { Component, OnChanges, SimpleChanges, Input } from '@angular/core';
 import { Chart } from 'chart.js';
 import { DataLogsService } from 'src/app/services/data-logs.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { switchMap } from 'rxjs/operators';
-import { ILogs } from 'src/app/models/logs.model';
-import { FormsModule } from '@angular/forms';
 
 @Component({
   selector: 'app-logs-graph',
@@ -23,6 +19,7 @@ export class LogsGraphComponent implements OnChanges {
   dataset: any;
   xValues: any;
   yValues: any;
+  errorMessage: string = '';
 
   constructor(
     private dataLogsService: DataLogsService,
@@ -120,7 +117,12 @@ export class LogsGraphComponent implements OnChanges {
   }
   getData() {
     this.dataLogsService.getData(this.childUuid, this.childSessionId).subscribe((results) => {
-      console.log(results);
+      try {
+        const dataLenght = results[0].lenght;
+      } catch (e) {
+        this.errorMessage = 'No values for this slug and sessionId';
+        console.log(this.errorMessage, e);
+      }
       this.graphData = results;
       this.getXYValuesFromData();
       this.plotGraph();
diff --git a/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts b/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts
index e31dae6..b9caf07 100644
--- a/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts
+++ b/src/app/components/logs-dashboard/report/logs-info/logs-info.component.ts
@@ -1,9 +1,7 @@
 import { Component, OnChanges, SimpleChanges, Input } from '@angular/core';
 import { DataLogsService } from 'src/app/services/data-logs.service';
-import { ActivatedRoute, ParamMap } from '@angular/router';
-import { switchMap } from 'rxjs/operators';
+import { ActivatedRoute } from '@angular/router';
 import { ILogs } from 'src/app/models/logs.model';
-import { FormsModule } from '@angular/forms';
 import { PaginatorOptions } from 'src/app/models/paginator-options.model';
 import { Subscription } from 'rxjs';
 
diff --git a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts
index 74f35f8..b43ec9b 100644
--- a/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts
+++ b/src/app/components/logs-dashboard/report/logs-pre-report/logs-pre-report.component.ts
@@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
 import { ActivatedRoute, ParamMap, Router } from '@angular/router';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import { filter, switchMap } from 'rxjs/operators';
-import { Format } from 'src/app/models/format.model';
 import { DataLogsService } from 'src/app/services/data-logs.service';
 import { IPageHeaderInfo } from 'src/app/models/page.model';
 import { PaginatorOptions } from 'src/app/models/paginator-options.model';
diff --git a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html
index 3bc7924..49dd0ca 100644
--- a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html
+++ b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.html
@@ -10,7 +10,10 @@
       <span class="tab-label">{{ tab.name }}</span>
     </li>
   </ul>
+  <div>
+      <h2>{{errorMessage}}</h2>
 
+  </div>
   <app-logs-graph [hidden]="!isToggled" [childUuid]="uuid" [childSessionId]="sessionId" [childSlug]="slug">
   </app-logs-graph>
   <app-logs-info [hidden]="isToggled||isToggled==undefined" [childUuid]="uuid" [childSessionId]="sessionId"
diff --git a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts
index 7a87faf..684e2d2 100644
--- a/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts
+++ b/src/app/components/logs-dashboard/report/logs-report/logs-report.component.ts
@@ -1,8 +1,6 @@
 import { Component, OnInit } from '@angular/core';
 import { ActivatedRoute, ParamMap, Router } from '@angular/router';
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
-import { filter, switchMap } from 'rxjs/operators';
-import { Format } from 'src/app/models/format.model';
 import { DataLogsService } from 'src/app/services/data-logs.service';
 import { IPageHeaderInfo } from 'src/app/models/page.model';
 import { ISimpleTab } from 'src/app/models/basic-tabs.model';
@@ -17,18 +15,19 @@ export class LogsReportComponent implements OnInit {
     title: 'Data-Logs Report',
   };
   responseArray: any = [];
+  errorMessage: string = '';
   isToggled: boolean = true;
   form: FormGroup;
   title: string;
-  slug: string ;
-  uuid:string;
+  slug: string;
+  uuid: string;
   sessionId: string;
-  serviceName:string;
+  serviceName: string;
   nbObjects: number = 0;
   urlCode: string = '';
-  isSession:boolean = false;
+  isSession: boolean = false;
   previousUrl: string;
-  tabs: ISimpleTab[] =  [
+  tabs: ISimpleTab[] = [
     {
       name: 'Graph',
       isActive: true,
@@ -68,8 +67,12 @@ export class LogsReportComponent implements OnInit {
 
   getUuidFromSlug(slug) {
     this._dataLogsService.getUuidFromSlug(slug).subscribe((result) => {
-      // console.log(result[0]);
-      this.uuid = result[0].uuid_list[0];
+      try {
+        this.uuid = result[0].uuid_list[0];
+      } catch (e) {
+        this.errorMessage = 'No uuid for this slug';
+        console.log(this.errorMessage, e);
+      }
     },
     );
   }
diff --git a/src/app/services/data-logs.service.ts b/src/app/services/data-logs.service.ts
index 81550be..7c38156 100644
--- a/src/app/services/data-logs.service.ts
+++ b/src/app/services/data-logs.service.ts
@@ -153,6 +153,16 @@ export class DataLogsService {
     );
   }
 
+  getSlugFromUuid(uuid): Observable<any[]> {
+    const query = { uuid };
+    const stringQuery = JSON.stringify(query);
+    const aggregationEndPoint = '/_aggrs/uuidToSlug?avars=';
+    return this._httpClient.get<any[]>(this.resourceServiceUrl + aggregationEndPoint + stringQuery).pipe(
+      map((response) => {
+        return response[0]['slug_list'][0];
+      }),
+    );
+  }
   getSessionIdFromSlug(slug): Observable<any[]> {
     const query = { slug };
     const stringQuery = JSON.stringify(query);
-- 
GitLab