import { Inject, Injectable } from '@nestjs/common'; import type { RetentionAggregationsRepository } from '@/models/index.js'; import { Endpoint } from '@/server/api/endpoint-base.js'; import { DI } from '@/di-symbols.js'; export const meta = { tags: ['users'], requireCredential: false, res: { }, allowGet: true, cacheSec: 60 * 60, } 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 { constructor( @Inject(DI.retentionAggregationsRepository) private retentionAggregationsRepository: RetentionAggregationsRepository, ) { super(meta, paramDef, async (ps, me) => { const records = await this.retentionAggregationsRepository.find({ order: { id: 'DESC', }, take: 30, }); return records.map(record => ({ createdAt: record.createdAt.toISOString(), users: record.usersCount, data: record.data, })); }); } }