/**
* @module google/auth
*/
var google = require('googleapis');
var fs = require('fs');
var path = require('path');
/**
* @const GOOGLE_CONFIG_PATH
*/
var GOOGLE_CONFIG_PATH = path.join(process.env['HOME'],'repositories/cliques-config/google');
/**
* @const DEFAULT_JWT_SECRETS_FILE
*/
var DEFAULT_JWT_SECRETS_FILE = path.join(GOOGLE_CONFIG_PATH, 'jwt.json');
/**
* Creates auth client to use with any Google Cloud API service.
*
* @param {String} jwt_auth_file path to JWT auth file
* @param {Array} scopes
* @param callback
*/
function getJWTAuthClient(jwt_auth_file, scopes, callback){
var jwt_auth = JSON.parse(fs.readFileSync(jwt_auth_file, 'utf8'));
var auth = new google.auth.JWT();
auth.fromJSON(jwt_auth);
auth.scopes = scopes;
auth.authorize(function(err, tokens){
if (err) return callback(err);
return callback(null, auth);
});
}
exports.getJWTAuthClient = getJWTAuthClient;
exports.GOOGLE_CONFIG_PATH = GOOGLE_CONFIG_PATH;
exports.DEFAULT_JWT_SECRETS_FILE = DEFAULT_JWT_SECRETS_FILE;