ALSO fixes: dashboard.repository still JOINed dropped user_reputations table (listUsers/getUserDetail crash).
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { createChildLogger } from "../../shared/logger/index.js";
|
|
import {
|
|
type ListModerationQuery,
|
|
moderationRepository,
|
|
} from "./moderation.repository.js";
|
|
|
|
const logger = createChildLogger("moderation.service");
|
|
|
|
export class ModerationService {
|
|
async getStats() {
|
|
return moderationRepository.getStats();
|
|
}
|
|
|
|
async getTrends(days = 30) {
|
|
return moderationRepository.getTrends(days);
|
|
}
|
|
|
|
async getTopFlaggedDomains(days = 30) {
|
|
return moderationRepository.getTopFlaggedDomains(days);
|
|
}
|
|
|
|
async getTopFlaggedChannels(days = 30) {
|
|
return moderationRepository.getTopFlaggedChannels(days);
|
|
}
|
|
|
|
async getHourlyModeration(days = 30) {
|
|
return moderationRepository.getHourlyModeration(days);
|
|
}
|
|
|
|
async getByCategory(days = 30, category: string) {
|
|
return moderationRepository.getByCategory(days, category);
|
|
}
|
|
|
|
async getCoverage(days = 30) {
|
|
return moderationRepository.getCoverage(days);
|
|
}
|
|
|
|
async listActions(query: ListModerationQuery) {
|
|
logger.debug({ query }, "Listing moderation actions");
|
|
return moderationRepository.listActions(query);
|
|
}
|
|
}
|
|
|
|
export const moderationService = new ModerationService();
|