UNPKG

ts-logs

Version:

This package provide a skd for audit and manager logs in nodejs and express

47 lines 1.59 kB
"use strict"; 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