Files
ewelink-api/mixins/devices/saveDevicesCacheMixin.js
Martin M 098011b285 Release v2.0.0 (#44)
* Added arpTableSolver (#18)

* Added arpTableSolver

* fix package import

* linting class

* changed arp library

* refactor arp class

* using arpping fork

* refactor arpTableSolver class

* Added Zero Conf functionality (LAN mode) (#46)

* added crypto-js

* zeroconf helper functions

* zeroconf update payload

* new method to save devices cache file

* class renamed

* refactor Zeroconf class

* return cached device if exists

* moved method to get local ip address

* fix mac addresses without leading zeroes

* refactor Zeroconf class

* using new zeroconf functionality

* zeroconf working with single and multichannel devices

* save device mixin enhancement

* working on zeroconf test cases

* catch errors on filesystem methods

* zeroconf: added extra test cases

* better error handling

* zeroconf: 100% code coverage

* removed deprecated login method

* updates on credentials file

* version bump

* Docs for v2.0 (#52)

* added v1 docs

* added zeroconf docs

* updated readme

* docs updated

* removed zeroconf article warning

* updated vscode config

Co-authored-by: Luis Llamas <luisllamas@hotmail.com>
2020-01-11 01:39:29 -03:00

33 lines
877 B
JavaScript

const fs = require('fs');
const { _get } = require('../../lib/helpers');
const saveDevicesCacheMixin = {
/**
* Save devices cache file (useful for using zeroconf)
* @returns {Promise<string|{msg: string, error: number}|*|Device[]|{msg: string, error: number}>}
*/
async saveDevicesCache(fileName = './devices-cache.json') {
const devices = await this.getDevices();
const error = _get(devices, 'error', false);
if (error || !devices) {
console.log(devices);
return devices;
}
const jsonContent = JSON.stringify(devices, null, 2);
try {
fs.writeFileSync(fileName, jsonContent, 'utf8');
return { status: 'ok', file: fileName };
} catch (e) {
console.log('An error occured while writing JSON Object to File.');
return { error: e.toString() };
}
},
};
module.exports = saveDevicesCacheMixin;