ter-localization-cli
Version:
Quick and powerful library for localization for react / react native application
123 lines (104 loc) • 3.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _googleapis = require("googleapis");
var _index = _interopRequireDefault(require("./index"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
var TOKEN_PATH = 'token.json';
var oAuthClient = function oAuthClient() {
try {
var content = _fs.default.readFileSync('credentials.json');
var credentials = JSON.parse(content);
var _credentials$installe = credentials.installed,
client_secret = _credentials$installe.client_secret,
client_id = _credentials$installe.client_id;
return new _googleapis.google.auth.OAuth2(client_id, client_secret, "http://localhost:".concat(_index.default.config().port, "/api/sync/authorization_success"));
} catch (error) {
return false;
}
};
var setToken = function setToken(oAuth2Client) {
var token = _fs.default.readFileSync(TOKEN_PATH);
oAuth2Client.setCredentials(JSON.parse(token));
return oAuth2Client;
};
var authorizeUrl = function authorizeUrl() {
try {
var oAuth2Client = oAuthClient();
var authUrl = oAuth2Client.generateAuthUrl({
access_type: 'online',
scope: SCOPES
});
return authUrl;
} catch (error) {
return false;
}
};
var saveToken = function saveToken(code) {
return new Promise(function (resolve, reject) {
var oAuth2Client = oAuthClient();
oAuth2Client.getToken(code, function (err, token) {
if (err) reject(err);
oAuth2Client.setCredentials(token);
_fs.default.writeFile(TOKEN_PATH, JSON.stringify(token), function (err) {
if (err) reject(err);
});
resolve(oAuth2Client);
});
});
};
var writeData = function writeData(_ref) {
var auth = _ref.auth,
spreadsheetId = _ref.spreadsheetId,
sheetId = _ref.sheetId,
values = _ref.values;
return new Promise(function (resolve, reject) {
var sheets = _googleapis.google.sheets({
version: 'v4',
auth: auth
});
sheets.spreadsheets.values.update({
spreadsheetId: spreadsheetId,
range: "".concat(sheetId, "!A1"),
valueInputOption: 'RAW',
resource: {
values: values
}
}, function (err, res) {
if (err) reject(err);
resolve(res);
});
});
};
var readData = function readData(_ref2) {
var auth = _ref2.auth,
spreadsheetId = _ref2.spreadsheetId,
sheetId = _ref2.sheetId;
return new Promise(function (resolve, reject) {
var sheets = _googleapis.google.sheets({
version: 'v4',
auth: auth
});
sheets.spreadsheets.values.get({
spreadsheetId: spreadsheetId,
range: "".concat(sheetId, "!A1:E")
}, function (err, res) {
if (err) reject(err);
resolve(res);
});
});
};
var gSheet = {
oAuthClient: oAuthClient,
saveToken: saveToken,
writeData: writeData,
authorizeUrl: authorizeUrl,
readData: readData,
setToken: setToken
};
var _default = gSheet;
exports.default = _default;
;