UNPKG

hoover-washer-status-check

Version:
48 lines (47 loc) 2.01 kB
"use strict"; 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], }, }; }