From 5e2471aebfb01a6e79c7855ddd0263a8e9bbfa86 Mon Sep 17 00:00:00 2001 From: Tom Bloor Date: Tue, 29 Aug 2017 17:39:27 +0100 Subject: [PATCH] Refactor customer graph to use new service for org graphs --- src/app/app.module.ts | 3 +++ src/app/dashboard/dashboard.component.html | 2 +- src/app/providers/api-service.ts | 10 ++++++++++ src/app/providers/org-graphs.service.ts | 13 ++++++++++++ src/app/widgets/customers.component.ts | 23 +++++++++++++--------- 5 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 src/app/providers/org-graphs.service.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d51ba98..3c28ebd 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -17,6 +17,8 @@ import { AppRoutingModule } from './app.routing'; import { AuthGuard } from './_guards/auth.guard'; import { ApiService } from './providers/api-service'; +import { OrgGraphsService } from './providers/org-graphs.service'; + // Layouts import { FullLayoutComponent } from './layouts/full-layout.component'; import { SimpleLayoutComponent } from './layouts/simple-layout.component'; @@ -54,6 +56,7 @@ import { DashboardModule } from './dashboard/dashboard.module'; providers: [ AuthGuard, ApiService, + OrgGraphsService, { provide: LocationStrategy, useClass: HashLocationStrategy diff --git a/src/app/dashboard/dashboard.component.html b/src/app/dashboard/dashboard.component.html index 4ffd263..5ef8899 100644 --- a/src/app/dashboard/dashboard.component.html +++ b/src/app/dashboard/dashboard.component.html @@ -61,7 +61,7 @@
- +
diff --git a/src/app/providers/api-service.ts b/src/app/providers/api-service.ts index 73bb013..7aa4ffa 100644 --- a/src/app/providers/api-service.ts +++ b/src/app/providers/api-service.ts @@ -18,6 +18,16 @@ export class ApiService { } } + public post(url, data) { + if ( this.sessionKey != null ) { + data.session_key = this.sessionKey; + } + return this.http.post( + this.apiUrl + url, + data + ).map( response => response.json() ); + } + // Login API private getSessionKey() { diff --git a/src/app/providers/org-graphs.service.ts b/src/app/providers/org-graphs.service.ts new file mode 100644 index 0000000..aeea889 --- /dev/null +++ b/src/app/providers/org-graphs.service.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; +import { ApiService } from './api-service'; + +@Injectable() +export class OrgGraphsService { + private orgGraphUrl = '/v1/organisation/graphs'; + + constructor(private api: ApiService) { } + + public getGraph(name: string) { + return this.api.post(this.orgGraphUrl, { graph: name }); + } +} diff --git a/src/app/widgets/customers.component.ts b/src/app/widgets/customers.component.ts index f9bebe4..7ccc692 100644 --- a/src/app/widgets/customers.component.ts +++ b/src/app/widgets/customers.component.ts @@ -1,18 +1,24 @@ import { Component, OnInit } from '@angular/core'; -import { ApiService } from '../providers/api-service'; +import { OrgGraphsService } from '../providers/org-graphs.service'; + +interface ChartData { + data: Array; + label: string; +} @Component({ - selector: 'widget-customer-7-days', + selector: 'widget-customers-last-7-days', templateUrl: 'customers.component.html', }) export class Customer7DayWidget implements OnInit { - public lineChartData: Array = [ + + public lineChartData: Array = [ { data: [], label: 'Series A' } ]; - public lineChartLabels: Array = []; + public lineChartLabels: Array; public lineChartOptions: any = { maintainAspectRatio: false, scales: { @@ -59,16 +65,15 @@ export class Customer7DayWidget implements OnInit { public customerSum: Number = 0; - constructor(private api: ApiService) { } + constructor(private graphService: OrgGraphsService) { } ngOnInit(): void { - this.api.graph_data(undefined) + this.graphService.getGraph('customers_last_7_days') .subscribe( result => { console.log(result); - const customersThisWeek = result.data.customersthisweek; - this.lineChartData[0].data = customersThisWeek.customerno; - this.lineChartLabels = customersThisWeek.day; + this.lineChartData[0].data = result.graph.count; + this.lineChartLabels = result.graph.day; this.customerSum = this.lineChartData[0].data.reduce((a, b) => a + b, 0); } );