From a9180d7cfc676582dfa13a2fc97e597d96f2465a Mon Sep 17 00:00:00 2001 From: Jesse Chan Date: Mon, 12 Oct 2020 21:29:25 +0800 Subject: [PATCH] server: move DiskUsage class out of services It is not user-dependent. Thus not a service. --- server/middleware/clientActivityStream.ts | 8 ++++---- .../diskUsageService.ts => models/DiskUsage.ts} | 14 +++++--------- 2 files changed, 9 insertions(+), 13 deletions(-) rename server/{services/diskUsageService.ts => models/DiskUsage.ts} (83%) diff --git a/server/middleware/clientActivityStream.ts b/server/middleware/clientActivityStream.ts index 2451e177..8d3ac48f 100644 --- a/server/middleware/clientActivityStream.ts +++ b/server/middleware/clientActivityStream.ts @@ -5,11 +5,11 @@ import type {HistorySnapshot} from '@shared/constants/historySnapshotTypes'; import type {TransferHistory, TransferSummaryDiff} from '@shared/types/TransferData'; import type {TorrentListDiff} from '@shared/types/Torrent'; +import DiskUsage from '../models/DiskUsage'; import ServerEvent from '../models/ServerEvent'; import services from '../services'; -import DiskUsageService from '../services/diskUsageService'; -import type {DiskUsage} from '../services/diskUsageService'; +import type {DiskUsageSummary} from '../models/DiskUsage'; export default async (req: Request, res: Response) => { const { @@ -43,12 +43,12 @@ export default async (req: Request { + handleEvents(DiskUsage, 'DISK_USAGE_CHANGE', (diskUsageChange: DiskUsageSummary) => { serverEvent.emit(diskUsageChange.id, 'DISK_USAGE_CHANGE', diskUsageChange.disks); }); // Trigger an immediate update - DiskUsageService.updateDisks().catch((e) => console.error(e)); + DiskUsage.updateDisks().catch((e) => console.error(e)); const torrentList = (await fetchTorrentList) || serviceInstances.torrentService.getTorrentListSummary(); const taxonomy = serviceInstances.taxonomyService.getTaxonomy(); diff --git a/server/services/diskUsageService.ts b/server/models/DiskUsage.ts similarity index 83% rename from server/services/diskUsageService.ts rename to server/models/DiskUsage.ts index 4ed03886..8c619b9a 100644 --- a/server/services/diskUsageService.ts +++ b/server/models/DiskUsage.ts @@ -1,7 +1,3 @@ -/** - * This service is not per rTorrent session, which is why it does not inherit - * `BaseService` nor have any use of the per user API ie. `getService()` - */ import {EventEmitter} from 'events'; import type TypedEmitter from 'typed-emitter'; @@ -11,20 +7,20 @@ import {isPlatformSupported, diskUsage} from '../util/diskUsageUtil'; import type {SupportedPlatform} from '../util/diskUsageUtil'; -export interface DiskUsage { +export interface DiskUsageSummary { id: number; disks: Disks; } interface DiskUsageEvents { - DISK_USAGE_CHANGE: (usage: DiskUsage) => void; + DISK_USAGE_CHANGE: (usage: DiskUsageSummary) => void; newListener: (event: keyof Omit) => void; removeListener: (event: keyof Omit) => void; } const INTERVAL_UPDATE = 10000; -class DiskUsageService extends (EventEmitter as new () => TypedEmitter) { +class DiskUsage extends (EventEmitter as new () => TypedEmitter) { disks: Disks = []; tLastChange = 0; interval = 0; @@ -70,7 +66,7 @@ class DiskUsageService extends (EventEmitter as new () => TypedEmitter TypedEmitter