From 154898b0b7bc1af41fc5a94974e338a3590c90f3 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sat, 17 Jun 2017 11:28:11 +0200 Subject: Share models between server and client --- .../request-stats/request-stats.component.ts | 11 +++---- client/src/app/+admin/requests/shared/index.ts | 2 +- .../shared/request-stats-attributes.model.ts | 37 ++++++++++++++++++++++ .../+admin/requests/shared/request-stats.model.ts | 35 -------------------- .../app/+admin/requests/shared/request.service.ts | 9 +++--- 5 files changed, 47 insertions(+), 47 deletions(-) create mode 100644 client/src/app/+admin/requests/shared/request-stats-attributes.model.ts delete mode 100644 client/src/app/+admin/requests/shared/request-stats.model.ts (limited to 'client/src/app/+admin/requests') diff --git a/client/src/app/+admin/requests/request-stats/request-stats.component.ts b/client/src/app/+admin/requests/request-stats/request-stats.component.ts index cca4926cf..140aaf47e 100644 --- a/client/src/app/+admin/requests/request-stats/request-stats.component.ts +++ b/client/src/app/+admin/requests/request-stats/request-stats.component.ts @@ -2,7 +2,8 @@ import { Component, OnInit, OnDestroy } from '@angular/core' import { NotificationsService } from 'angular2-notifications' -import { RequestService, RequestStats } from '../shared' +import { RequestService, RequestSchedulerStatsAttributes } from '../shared' +import { RequestScheduler } from '../../../../../../shared' @Component({ selector: 'my-request-stats', @@ -16,11 +17,7 @@ export class RequestStatsComponent implements OnInit, OnDestroy { requestVideoQaduScheduler: 'Quick and dirty video updates request scheduler' } - stats: { [ id: string ]: RequestStats } = { - requestScheduler: null, - requestVideoEventScheduler: null, - requestVideoQaduScheduler: null - } + stats: RequestScheduler private intervals: { [ id: string ]: number } = { requestScheduler: null, @@ -67,7 +64,7 @@ export class RequestStatsComponent implements OnInit, OnDestroy { private runIntervals () { Object.keys(this.intervals).forEach(requestSchedulerName => { this.intervals[requestSchedulerName] = window.setInterval(() => { - const stats = this.stats[requestSchedulerName] + const stats: RequestSchedulerStatsAttributes = this.stats[requestSchedulerName] stats.remainingMilliSeconds -= 1000 diff --git a/client/src/app/+admin/requests/shared/index.ts b/client/src/app/+admin/requests/shared/index.ts index 2442e810a..857fe9d29 100644 --- a/client/src/app/+admin/requests/shared/index.ts +++ b/client/src/app/+admin/requests/shared/index.ts @@ -1,2 +1,2 @@ -export * from './request-stats.model' +export * from './request-stats-attributes.model' export * from './request.service' diff --git a/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts b/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts new file mode 100644 index 000000000..394acc73d --- /dev/null +++ b/client/src/app/+admin/requests/shared/request-stats-attributes.model.ts @@ -0,0 +1,37 @@ +import { RequestSchedulerAttributes as FormatedRequestSchedulerAttributes } from '../../../../../../shared' + +export interface Request { + request: any + to: any +} + +export class RequestSchedulerStatsAttributes implements FormatedRequestSchedulerAttributes { + requestsLimitPods: number + requestsLimitPerPod: number + milliSecondsInterval: number + remainingMilliSeconds: number + totalRequests: number + + constructor (hash: { + requestsLimitPods: number, + requestsLimitPerPod: number, + milliSecondsInterval: number, + remainingMilliSeconds: number, + totalRequests: number + }) { + this.requestsLimitPods = hash.requestsLimitPods + this.requestsLimitPerPod = hash.requestsLimitPerPod + this.milliSecondsInterval = hash.milliSecondsInterval + this.remainingMilliSeconds = hash.remainingMilliSeconds + this.totalRequests = hash.totalRequests + } + + get remainingSeconds () { + return Math.floor(this.remainingMilliSeconds / 1000) + } + + get secondsInterva () { + return Math.floor(this.milliSecondsInterval / 1000) + } + +} diff --git a/client/src/app/+admin/requests/shared/request-stats.model.ts b/client/src/app/+admin/requests/shared/request-stats.model.ts deleted file mode 100644 index 31550b5c0..000000000 --- a/client/src/app/+admin/requests/shared/request-stats.model.ts +++ /dev/null @@ -1,35 +0,0 @@ -export interface Request { - request: any - to: any -} - -export class RequestStats { - requestsLimitPods: number - requestsLimitPerPod: number - milliSecondsInterval: number - remainingMilliSeconds: number - totalRequests: number - - constructor (hash: { - requestsLimitPods: number, - requestsLimitPerPod: number, - milliSecondsInterval: number, - remainingMilliSeconds: number, - totalRequests: number - }) { - this.requestsLimitPods = hash.requestsLimitPods - this.requestsLimitPerPod = hash.requestsLimitPerPod - this.milliSecondsInterval = hash.milliSecondsInterval - this.remainingMilliSeconds = hash.remainingMilliSeconds - this.totalRequests = hash.totalRequests - } - - get remainingSeconds () { - return Math.floor(this.remainingMilliSeconds / 1000) - } - - get secondsInterva () { - return Math.floor(this.milliSecondsInterval / 1000) - } - -} diff --git a/client/src/app/+admin/requests/shared/request.service.ts b/client/src/app/+admin/requests/shared/request.service.ts index faa6b9383..53682b111 100644 --- a/client/src/app/+admin/requests/shared/request.service.ts +++ b/client/src/app/+admin/requests/shared/request.service.ts @@ -3,8 +3,9 @@ import { Observable } from 'rxjs/Observable' import 'rxjs/add/operator/catch' import 'rxjs/add/operator/map' -import { RequestStats } from './request-stats.model' +import { RequestScheduler } from '../../../../../../shared' import { AuthHttp, RestExtractor } from '../../../shared' +import { RequestSchedulerStatsAttributes } from './request-stats-attributes.model' @Injectable() export class RequestService { @@ -15,18 +16,18 @@ export class RequestService { private restExtractor: RestExtractor ) {} - getStats (): Observable<{ [ id: string ]: RequestStats }> { + getStats (): Observable { return this.authHttp.get(RequestService.BASE_REQUEST_URL + 'stats') .map(this.restExtractor.extractDataGet) .map(this.buildRequestObjects) .catch((res) => this.restExtractor.handleError(res)) } - private buildRequestObjects (data: any) { + private buildRequestObjects (data: RequestScheduler) { const requestSchedulers = {} Object.keys(data).forEach(requestSchedulerName => { - requestSchedulers[requestSchedulerName] = new RequestStats(data[requestSchedulerName]) + requestSchedulers[requestSchedulerName] = new RequestSchedulerStatsAttributes(data[requestSchedulerName]) }) return requestSchedulers -- cgit v1.2.3