tyr-cli
Version:
A command line interface for hammer-io.
73 lines (28 loc) • 8.05 kB
JavaScript
;Object.defineProperty(exports, "__esModule", { value: true });exports.
getCurrentUser = getCurrentUser;exports.
createApp = createApp;var _superagent = require('superagent');var _superagent2 = _interopRequireDefault(_superagent);var _winston = require('../utils/winston');var _authorization = require('../utils/authorization');var authorizationUtil = _interopRequireWildcard(_authorization);function _interopRequireWildcard(obj) {if (obj && obj.__esModule) {return obj;} else {var newObj = {};if (obj != null) {for (var key in obj) {if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];}}newObj.default = obj;return newObj;}}function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}const log = (0, _winston.getActiveLogger)();const herokuApiUrl = 'https://api.heroku.com';const herokuApiAccept = ' application/vnd.heroku+json; version=3'; /**
* Makes request at https://api.heroku.com/account, and authenticates with basic auth
* @param email the email
* @param password the password
* @returns {Promise<any>} user account information
*/function getCurrentUser(email, password) {log.verbose('Heroku Client - getCurrentUser()');log.http(`GET ${herokuApiUrl}/apps - getting account information for email: ${email}`);return new Promise((resolve, reject) => {_superagent2.default.get(`${herokuApiUrl}/account`).set({ Accept: herokuApiAccept, Authorization: authorizationUtil.basicAuthorization(email, password) }).end((err, res) => {if (err) {log.debug(`ERROR: POST ${herokuApiUrl}/apps - error getting account information for email: ${email}
- ${JSON.stringify({ status: err.status, message: err.message })}`);reject(err);} else {log.debug(`RESPONSE: POST ${herokuApiUrl}/apps - success getting account information for email: ${email}`);resolve(res.body);}});});} /**
* Makes a request at https://api.heroku.com/apps, and authenticates with token auth
* @param name the name of the application to create
* @param token the token of the user
* @returns {Promise<any>}
*/function createApp(name, token) {log.verbose('Heroku Client - createApp()');log.http(`POST ${herokuApiUrl}/apps - creating heroku application with name ${name}`);return new Promise((resolve, reject) => {_superagent2.default.post(`${herokuApiUrl}/apps`).set({ Accept: herokuApiAccept, Authorization: authorizationUtil.bearerAuthorization(token), 'Content-Type': 'application/json',
scopes: ['write'] }).
send({ name }).
end((err, res) => {
if (err) {
log.debug(`ERROR: POST ${herokuApiUrl}/apps - error creating heroku application with name ${name}
- ${JSON.stringify({ status: err.status, message: err.message })}`);
reject(err);
} else {
log.debug(`RESPONSE POST ${herokuApiUrl}/apps - successfully created heroku application with name ${name}`);
resolve(res.body);
}
});
});
}