New Root endpoint
parent
42ed3da0d3
commit
a45f1b6692
|
@ -0,0 +1,41 @@
|
||||||
|
import os from 'os';
|
||||||
|
import { Server } from '..';
|
||||||
|
import { Route } from '../../class';
|
||||||
|
|
||||||
|
export default class Root extends Route {
|
||||||
|
constructor(server: Server) {
|
||||||
|
super(server, { path: '/', deprecated: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
public bind() {
|
||||||
|
this.router.get('/', async (req, res) => {
|
||||||
|
try {
|
||||||
|
const date = new Date();
|
||||||
|
date.setSeconds(-process.uptime());
|
||||||
|
const accounts = await this.server.client.db.Account.find();
|
||||||
|
const administrators = accounts.filter((account) => account.root === true);
|
||||||
|
const response = {
|
||||||
|
nodeVersion: process.version,
|
||||||
|
uptime: process.uptime(),
|
||||||
|
server: {
|
||||||
|
users: accounts.length,
|
||||||
|
administrators,
|
||||||
|
},
|
||||||
|
stats: {
|
||||||
|
uptime: os.uptime(),
|
||||||
|
loadAverage: os.loadavg(),
|
||||||
|
cpuModel: os.cpus()[0].model,
|
||||||
|
cpuClock: os.cpus()[0].speed / 1000,
|
||||||
|
cpuCores: os.cpus().length,
|
||||||
|
hostname: os.hostname(),
|
||||||
|
ipv4: os.networkInterfaces().eth0.filter((r) => r.family === 'IPv4')[0].address,
|
||||||
|
ipv6: os.networkInterfaces().eth0.filter((r) => r.family === 'IPv6')[0].address,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
res.status(200).json({ code: this.constants.codes.SUCCESS, message: response });
|
||||||
|
} catch (error) {
|
||||||
|
this.handleError(error, res);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue