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 --- .../friends/friend-list/friend-list.component.ts | 2 +- .../src/app/+admin/friends/shared/friend.model.ts | 7 ---- .../app/+admin/friends/shared/friend.service.ts | 1 - .../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 +++--- .../video-abuse-list/video-abuse-list.component.ts | 3 +- 9 files changed, 50 insertions(+), 57 deletions(-) delete mode 100644 client/src/app/+admin/friends/shared/friend.model.ts 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') diff --git a/client/src/app/+admin/friends/friend-list/friend-list.component.ts b/client/src/app/+admin/friends/friend-list/friend-list.component.ts index 7bf9d2c6b..9f0256d7f 100644 --- a/client/src/app/+admin/friends/friend-list/friend-list.component.ts +++ b/client/src/app/+admin/friends/friend-list/friend-list.component.ts @@ -5,7 +5,7 @@ import { ServerDataSource } from 'ng2-smart-table' import { ConfirmService } from '../../../core' import { Utils } from '../../../shared' -import { Friend, FriendService } from '../shared' +import { FriendService } from '../shared' @Component({ selector: 'my-friend-list', diff --git a/client/src/app/+admin/friends/shared/friend.model.ts b/client/src/app/+admin/friends/shared/friend.model.ts deleted file mode 100644 index 6950405b9..000000000 --- a/client/src/app/+admin/friends/shared/friend.model.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface Friend { - id: string - host: string - score: number - email: string - createdAt: Date -} diff --git a/client/src/app/+admin/friends/shared/friend.service.ts b/client/src/app/+admin/friends/shared/friend.service.ts index f4ecd36ad..79de4470e 100644 --- a/client/src/app/+admin/friends/shared/friend.service.ts +++ b/client/src/app/+admin/friends/shared/friend.service.ts @@ -5,7 +5,6 @@ import 'rxjs/add/operator/map' import { ServerDataSource } from 'ng2-smart-table' -import { Friend } from './friend.model' import { AuthHttp, RestExtractor, RestDataSource, ResultList } from '../../../shared' @Injectable() 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 diff --git a/client/src/app/+admin/video-abuses/video-abuse-list/video-abuse-list.component.ts b/client/src/app/+admin/video-abuses/video-abuse-list/video-abuse-list.component.ts index 60eaebb44..7c838fbf0 100644 --- a/client/src/app/+admin/video-abuses/video-abuse-list/video-abuse-list.component.ts +++ b/client/src/app/+admin/video-abuses/video-abuse-list/video-abuse-list.component.ts @@ -2,7 +2,8 @@ import { Component } from '@angular/core' import { NotificationsService } from 'angular2-notifications' -import { Utils, VideoAbuseService, VideoAbuse } from '../../../shared' +import { Utils, VideoAbuseService } from '../../../shared' +import { VideoAbuse } from '../../../../../shared' @Component({ selector: 'my-video-abuse-list', -- cgit v1.2.3