mirror of
https://github.com/sergeyyarkov/educt-server.git
synced 2026-10-11 10:19:20 +03:00
38 lines
966 B
TypeScript
38 lines
966 B
TypeScript
import { inject, Ioc } from '@adonisjs/core/build/standalone';
|
|
import IResponse from 'App/Datatypes/Interfaces/IResponse';
|
|
import HttpStatusEnum from 'App/Datatypes/Enums/HttpStatusEnum';
|
|
import Database from '@ioc:Adonis/Lucid/Database';
|
|
import Ws from './WsService';
|
|
|
|
@inject()
|
|
export default class StatService {
|
|
/**
|
|
* Get basic statistics about the system
|
|
*
|
|
* @returns Response
|
|
*/
|
|
// eslint-disable-next-line class-methods-use-this
|
|
public async fetchStatData(): Promise<IResponse> {
|
|
const count = await Database.rawQuery(
|
|
`
|
|
select (select count(*) from courses) as courses_count,
|
|
(select count(*) from lessons) as lessons_count
|
|
`
|
|
);
|
|
|
|
const online = await Ws.sessionStore.getOnlineSessionsCount();
|
|
|
|
return {
|
|
success: true,
|
|
status: HttpStatusEnum.OK,
|
|
message: 'Fetched stat.',
|
|
data: {
|
|
...count.rows[0],
|
|
online,
|
|
},
|
|
};
|
|
}
|
|
}
|
|
|
|
new Ioc().make(StatService);
|