X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fserver%2Fstats.ts;h=397702548b0e54ff992acf08a75cc972643fd185;hb=20bafcb61bee2a9a10a500908850c9a7d5e3c8c5;hp=6d508a481d7beb67024bb15ce688341309823745;hpb=134cf2bce96a8c5aefd55154e884964975d8cf23;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/server/stats.ts b/server/controllers/api/server/stats.ts index 6d508a481..397702548 100644 --- a/server/controllers/api/server/stats.ts +++ b/server/controllers/api/server/stats.ts @@ -1,59 +1,20 @@ import * as express from 'express' -import { ServerStats } from '../../../../shared/models/server/server-stats.model' -import { asyncMiddleware } from '../../../middlewares' -import { UserModel } from '../../../models/account/user' -import { ActorFollowModel } from '../../../models/activitypub/actor-follow' -import { VideoModel } from '../../../models/video/video' -import { VideoCommentModel } from '../../../models/video/video-comment' -import { VideoRedundancyModel } from '../../../models/redundancy/video-redundancy' +import { StatsManager } from '@server/lib/stat-manager' import { ROUTE_CACHE_LIFETIME } from '../../../initializers/constants' -import { cacheRoute } from '../../../middlewares/cache' -import { VideoFileModel } from '../../../models/video/video-file' -import { CONFIG } from '../../../initializers/config' -import { VideoRedundancyStrategyWithManual } from '@shared/models' +import { asyncMiddleware } from '../../../middlewares' +import { cacheRoute } from '../../../middlewares/cache/cache' const statsRouter = express.Router() statsRouter.get('/stats', - asyncMiddleware(cacheRoute()(ROUTE_CACHE_LIFETIME.STATS)), + cacheRoute(ROUTE_CACHE_LIFETIME.STATS), asyncMiddleware(getStats) ) -async function getStats (req: express.Request, res: express.Response) { - const { totalLocalVideos, totalLocalVideoViews, totalVideos } = await VideoModel.getStats() - const { totalLocalVideoComments, totalVideoComments } = await VideoCommentModel.getStats() - const { totalUsers } = await UserModel.getStats() - const { totalInstanceFollowers, totalInstanceFollowing } = await ActorFollowModel.getStats() - const { totalLocalVideoFilesSize } = await VideoFileModel.getStats() - - const strategies: { strategy: VideoRedundancyStrategyWithManual, size: number }[] = CONFIG.REDUNDANCY.VIDEOS.STRATEGIES - .map(r => ({ - strategy: r.strategy, - size: r.size - })) - strategies.push({ strategy: 'manual', size: null }) - - const videosRedundancyStats = await Promise.all( - strategies.map(r => { - return VideoRedundancyModel.getStats(r.strategy) - .then(stats => Object.assign(stats, { strategy: r.strategy, totalSize: r.size })) - }) - ) - - const data: ServerStats = { - totalLocalVideos, - totalLocalVideoViews, - totalLocalVideoFilesSize, - totalLocalVideoComments, - totalVideos, - totalVideoComments, - totalUsers, - totalInstanceFollowers, - totalInstanceFollowing, - videosRedundancy: videosRedundancyStats - } +async function getStats (_req: express.Request, res: express.Response) { + const data = await StatsManager.Instance.getStats() - return res.json(data).end() + return res.json(data) } // ---------------------------------------------------------------------------