ログをデータベースに保存して管理画面で見れるように
This commit is contained in:
51
src/server/api/endpoints/admin/logs.ts
Normal file
51
src/server/api/endpoints/admin/logs.ts
Normal file
@ -0,0 +1,51 @@
|
||||
import $ from 'cafy';
|
||||
import define from '../../define';
|
||||
import Log from '../../../../models/log';
|
||||
|
||||
export const meta = {
|
||||
tags: ['admin'],
|
||||
|
||||
requireCredential: true,
|
||||
requireModerator: true,
|
||||
|
||||
params: {
|
||||
limit: {
|
||||
validator: $.optional.num.range(1, 100),
|
||||
default: 30
|
||||
},
|
||||
|
||||
level: {
|
||||
validator: $.optional.nullable.str,
|
||||
default: null as any
|
||||
},
|
||||
|
||||
domain: {
|
||||
validator: $.optional.nullable.str,
|
||||
default: null as any
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export default define(meta, async (ps) => {
|
||||
const sort = {
|
||||
_id: -1
|
||||
};
|
||||
const query = {} as any;
|
||||
|
||||
if (ps.level) query.level = ps.level;
|
||||
if (ps.domain) {
|
||||
let i = 0;
|
||||
for (const d of ps.domain.split(' ')) {
|
||||
query[`domain.${i}`] = d;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
const logs = await Log
|
||||
.find(query, {
|
||||
limit: ps.limit,
|
||||
sort: sort
|
||||
});
|
||||
|
||||
return logs;
|
||||
});
|
@ -3,7 +3,7 @@ import limiterDB from '../../db/redis';
|
||||
import { IEndpoint } from './endpoints';
|
||||
import getAcct from '../../misc/acct/render';
|
||||
import { IUser } from '../../models/user';
|
||||
import Logger from '../../misc/logger';
|
||||
import Logger from '../../services/logger';
|
||||
|
||||
const logger = new Logger('limiter');
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
import Logger from "../../misc/logger";
|
||||
import Logger from "../../services/logger";
|
||||
|
||||
export const apiLogger = new Logger('api');
|
||||
|
Reference in New Issue
Block a user