UNPKG

tyr-cli

Version:

A command line interface for hammer-io.

73 lines (28 loc) 8.05 kB
'use strict';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); } }); }); }