ts-logs
Version:
This package provide a skd for audit and manager logs in nodejs and express
47 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mongo = require("mongodb");
const utils_1 = require("../utils");
const MongoProvider = ({
async save(config, log) {
const ONE_DAY = 86400;
const expireAfterSeconds = (config?.expireAfterDays ?? 30) * ONE_DAY;
const client = new mongo.MongoClient(config.url, config.options);
const collectionName = (0, utils_1.GetFolderName)(log.name);
const indexes = [
{ key: { "createdAt": 1 }, expireAfterSeconds },
{ key: { "uid": 1, 'name': 1 } }
];
await client.connect();
const collection = client.db('logs')
.collection(collectionName);
const filter = { uid: log.uid, name: log.name };
const update = {
$set: {
createdAt: log.createdAt,
ip: log.ip, name: log.name,
origin: log.origin,
stateType: log.stateType,
uid: log.uid
},
$push: { steps: { $each: [...log.steps] } }
};
try {
await collection.createIndexes(indexes);
}
catch (error) { }
;
try {
await collection.updateOne(filter, update, { upsert: true });
}
catch (error) {
return { statusCode: 400, url: error.message };
}
finally {
await client.close();
}
return { statusCode: 200, url: log.uid };
}
});
exports.default = MongoProvider;
//# sourceMappingURL=mongo-provider.js.map