/** * Helpers functions for dealing with devices */ const _ = require('lodash'); const mainDB = require(global.pathPrefix + 'mainDB.js'); const mainDBP = require(global.pathPrefix + 'mainDB-promises.js'); module.exports = { archiveDevice }; /** * Archives a copy of the device object, after appropriate anonymisation * * @param {Object} device - The device to delete * * @returns {Promise} - Promise for the result of archiving the device */ function archiveDevice(device) { /** * Store the old object _id as DeviceIndex */ const archivedDevice = _.clone(device); archivedDevice.DeviceIndex = device._id.toString(); delete archivedDevice._id; archivedDevice.DeviceAuthorisation = ''; archivedDevice.DeviceSalt = ''; archivedDevice.CurrentHMAC = ''; archivedDevice.PendingHMAC = ''; archivedDevice.LastUpdate = new Date(); /** * Write the object to the Archive. */ return mainDBP.addObject(mainDB.collectionDeviceArchive, archivedDevice, undefined, false); }