mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
core: oplog: better logging
This commit is contained in:
1 parent
92c1a41585
commit
ead0d54a55
8 files changed
+74
-60
No files matched your search
@@ -1,6 +1,7 @@
|
||||
import { ObjectID } from 'mongodb';
|
||||
import { OplogDoc } from '../interface';
|
||||
import db from '../service/db';
|
||||
import type { Handler } from '../service/server';
|
||||
|
||||
export const coll = db.collection('oplog');
|
||||
|
||||
@@ -14,8 +15,26 @@ export async function add(data: Partial<OplogDoc> & { type: string }): Promise<O
|
||||
return res.insertedId;
|
||||
}
|
||||
|
||||
export async function log<T extends Handler>(handler: T, type: string, data: any) {
|
||||
const res = await coll.insertOne({
|
||||
...data,
|
||||
_id: new ObjectID(),
|
||||
type,
|
||||
time: new Date(),
|
||||
domainId: handler.domainId,
|
||||
ua: handler.request.headers?.['user-agent'],
|
||||
referer: handler.request.headers?.referer,
|
||||
args: handler.args,
|
||||
operator: handler.user?.id,
|
||||
operateIp: handler.request.ip,
|
||||
});
|
||||
return res.insertedId;
|
||||
}
|
||||
|
||||
export async function get(id: ObjectID): Promise<OplogDoc | null> {
|
||||
return await coll.findOne({ _id: id });
|
||||
}
|
||||
|
||||
global.Hydro.model.oplog = { coll, add, get };
|
||||
global.Hydro.model.oplog = {
|
||||
coll, add, get, log,
|
||||
};
|
||||
Reference in new issue
Block a user