haven-secrets-core
Version:
Core for Haven, the easy to use centralized secrets manager.
56 lines (46 loc) • 1.18 kB
JavaScript
import getAllItems from "../aws/dynamodb/items/getAllItems.js";
import { loggingTableName } from "../utils/config.js";
const parseLogData = (logs) => {
// extract properties
logs.forEach((logItem) => {
for (const logItemProperty in logItem) {
logItem[logItemProperty] = logItem[logItemProperty].S;
}
});
// reorder properties
const propertiesInOrder = [
"Project",
"Environment",
"EventType",
"DateTime",
"UserName",
"SecretName",
"Version",
"Response",
];
return logs.map((logItem) => {
let reorderedLogItem = {};
propertiesInOrder.forEach((property) => {
reorderedLogItem[property] = logItem[property];
});
return reorderedLogItem;
});
};
const sortLogs = (logs) => {
logs.sort((item1, item2) => {
return Date.parse(item2.DateTime) - Date.parse(item1.DateTime);
});
};
const fetchLogs = async () => {
try {
let logs = await getAllItems(loggingTableName);
logs = logs.Items;
logs = parseLogData(logs);
sortLogs(logs);
return logs;
} catch (error) {
console.log(`${error.code}: ${error.message}`);
return error;
}
};
export default fetchLogs;