This commit is contained in:
tamaina 2023-05-29 14:11:51 +00:00
parent 94f25d9cdd
commit a1c96d9bcb
2 changed files with 24 additions and 16 deletions

View File

@ -3,27 +3,15 @@ import { DataSource } from 'typeorm';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { DI } from '@/di-symbols.js';
export const meta = {
requireCredential: true,
requireAdmin: true,
tags: ['admin'],
} as const;
export const paramDef = {
type: 'object',
properties: {},
required: [],
} as const;
// eslint-disable-next-line import/no-default-export
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> {
export default class extends Endpoint<'admin/get-index-stats'> {
name = 'admin/get-index-stats' as const;
constructor(
@Inject(DI.db)
private db: DataSource,
) {
super(meta, paramDef, async () => {
super(async () => {
const stats = await this.db.query('SELECT * FROM pg_indexes;').then(recs => {
const res = [] as { tablename: string; indexname: string; }[];
for (const rec of recs) {

View File

@ -1465,7 +1465,27 @@ export const endpoints = {
},
res: undefined,
}],
}
},
'admin/get-index-stats': {
requireCredential: true,
requireAdmin: true,
tags: ['admin'],
defines: [{
req: undefined,
res: {
type: 'array',
items: {
type: 'object',
properties: {
tablename: { type: 'string' },
indexname: { type: 'string' },
},
},
},
}],
},
} as const satisfies { [x: string]: IEndpointMeta; };
/**