summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin/server-info.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-09-18 03:27:08 +0900
committerGitHub <noreply@github.com>2022-09-18 03:27:08 +0900
commitb75184ec8e3436200bacdcd832e3324702553d20 (patch)
tree8b7e316f29e95df921db57289c8b8da476d18f07 /packages/backend/src/server/api/endpoints/admin/server-info.ts
parentUpdate ROADMAP.md (diff)
downloadsharkey-b75184ec8e3436200bacdcd832e3324702553d20.tar.gz
sharkey-b75184ec8e3436200bacdcd832e3324702553d20.tar.bz2
sharkey-b75184ec8e3436200bacdcd832e3324702553d20.zip
なんかもうめっちゃ変えた
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin/server-info.ts')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/server-info.ts78
1 files changed, 46 insertions, 32 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/server-info.ts b/packages/backend/src/server/api/endpoints/admin/server-info.ts
index 85c6fb82e7..9c576dffe9 100644
--- a/packages/backend/src/server/api/endpoints/admin/server-info.ts
+++ b/packages/backend/src/server/api/endpoints/admin/server-info.ts
@@ -1,8 +1,10 @@
import * as os from 'node:os';
import si from 'systeminformation';
-import define from '../../define.js';
-import { redisClient } from '../../../../db/redis.js';
-import { db } from '@/db/postgre.js';
+import { Inject, Injectable } from '@nestjs/common';
+import { DataSource } from 'typeorm';
+import Redis from 'ioredis';
+import { Endpoint } from '@/server/api/endpoint-base.js';
+import { DI } from '@/di-symbols.js';
export const meta = {
requireCredential: true,
@@ -94,34 +96,46 @@ export const paramDef = {
} as const;
// eslint-disable-next-line import/no-default-export
-export default define(meta, paramDef, async () => {
- const memStats = await si.mem();
- const fsStats = await si.fsSize();
- const netInterface = await si.networkInterfaceDefault();
+@Injectable()
+export default class extends Endpoint<typeof meta, typeof paramDef> {
+ constructor(
+ @Inject(DI.db)
+ private db: DataSource,
- const redisServerInfo = await redisClient.info('Server');
- const m = redisServerInfo.match(new RegExp('^redis_version:(.*)', 'm'));
- const redis_version = m?.[1];
+ @Inject(DI.redis)
+ private redisClient: Redis.Redis,
- return {
- machine: os.hostname(),
- os: os.platform(),
- node: process.version,
- psql: await db.query('SHOW server_version').then(x => x[0].server_version),
- redis: redis_version,
- cpu: {
- model: os.cpus()[0].model,
- cores: os.cpus().length,
- },
- mem: {
- total: memStats.total,
- },
- fs: {
- total: fsStats[0].size,
- used: fsStats[0].used,
- },
- net: {
- interface: netInterface,
- },
- };
-});
+ ) {
+ super(meta, paramDef, async () => {
+ const memStats = await si.mem();
+ const fsStats = await si.fsSize();
+ const netInterface = await si.networkInterfaceDefault();
+
+ const redisServerInfo = await this.redisClient.info('Server');
+ const m = redisServerInfo.match(new RegExp('^redis_version:(.*)', 'm'));
+ const redis_version = m?.[1];
+
+ return {
+ machine: os.hostname(),
+ os: os.platform(),
+ node: process.version,
+ psql: await this.db.query('SHOW server_version').then(x => x[0].server_version),
+ redis: redis_version,
+ cpu: {
+ model: os.cpus()[0].model,
+ cores: os.cpus().length,
+ },
+ mem: {
+ total: memStats.total,
+ },
+ fs: {
+ total: fsStats[0].size,
+ used: fsStats[0].used,
+ },
+ net: {
+ interface: netInterface,
+ },
+ };
+ });
+ }
+}