hoover-washer-status-check
Version:
Hoover washer status check
48 lines (47 loc) • 2.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sheets_api_1 = __importDefault(require("sheets-api"));
const config_1 = __importDefault(require("../config"));
const debug_1 = require("../debug");
const sheets = new sheets_api_1.default();
exports.logCurrentStatus = async (status) => {
debug_1.debug.extend('google:sheets')('Log current status to Google spreadsheet > %s', config_1.default.googleSheetsSpreadsheetId);
const rowToSave = {
created: new Date().toLocaleString(),
...status,
};
const client = await sheets._authorize({
installed: {
client_id: config_1.default.googleSheetsClientId,
project_id: config_1.default.googleSheetsProjectId,
auth_uri: 'https://accounts.google.com/o/oauth2/auth',
token_uri: 'https://oauth2.googleapis.com/token',
auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
client_secret: config_1.default.googleSheetsClientSecret,
redirect_uris: ['urn:ietf:wg:oauth:2.0:oob', 'http://localhost'],
},
});
const data = await sheets.values('get', client, {
spreadsheetId: config_1.default.googleSheetsSpreadsheetId,
range: 'A1',
});
if (data.response.values === undefined) {
debug_1.debug.extend('google:sheets')('Initializing empty sheet');
await sheets.values('append', client, createRowPayload(Object.keys(rowToSave)));
}
sheets.values('append', client, createRowPayload(Object.values(rowToSave)));
};
function createRowPayload(rowToSave) {
return {
spreadsheetId: config_1.default.googleSheetsSpreadsheetId,
range: 'A1',
valueInputOption: 'USER_ENTERED',
resource: {
majorDimension: 'ROWS',
values: [rowToSave],
},
};
}