backendless-console-sdk
Version:
Backendless Console SDK for Node.js and browser
187 lines (185 loc) • 7.56 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _cookie = require("./utils/cookie");
var _routes = require("./utils/routes");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var routes = (0, _routes.prepareRoutes)({
getMyAccount: '/console/home/myaccount',
updateMyAccount: '/console/home/myaccount/',
login: '/console/home/login',
loginWithTOTP: '/console/home/otp-login',
cloudLogin: '/console/home/cloud/login',
cloudLoginWithTOTP: '/console/home/cloud/otp-login',
logout: '/console/home/logout',
registerDev: '/console/devreg',
deleteDev: '/console/developer-suicide',
twoFA: '/console/developer/login/2fa',
stripeConnect: '/console/developer/stripe-connect',
changePassword: '/console/passwordchange',
restorePassword: '/console/restorepassword',
resendConfirmEmail: '/console/resend',
discourseSSO: '/console/discourse/sso',
socialLogin: '/console/social/oauth/:type/request_url',
devToAutomationWorkspace: '/console/automation/management/:workspaceId/activatedev',
stripeConnectionAuth: '/console/community/marketplace/stripe-connect/auth',
stripeConnectionToken: '/console/community/marketplace/stripe-connect/token',
devToAppTeam: '/:appId/console/activatedev',
devPermissions: '/:appId/console/my-permissions'
});
/**
*
* @param req
* @param {Context} context
*/
var _default = function _default(req, context) {
return {
/**
* @param {String=}authKey
* @return {Promise|*}
*/
getAccountInfo: function getAccountInfo(authKey) {
var request = req.get(routes.getMyAccount());
if (authKey) {
request.set('auth-key', authKey);
}
return request.send().then(function (account) {
context.setAuthKey(account.authKey);
return account;
});
},
register: function register(userData) {
return req.post(routes.registerDev()).send(userData);
},
suicide: function suicide() {
return req["delete"](routes.deleteDev()).send();
},
/**
* @param {String} login
* @param {String} password
* @return {Promise.<{name:String, email:String, authKey:String}>}
*/
login: function login(_login, password) {
return req.post(routes.login()).unwrapBody(false).send({
login: _login,
password: password
}).then(function (res) {
if (res.body.otpCreated) {
return res.body;
}
return contextifyWithAuthToken(res, context);
});
},
loginWithTOTP: function loginWithTOTP(authData) {
return req.post(routes.loginWithTOTP()).unwrapBody(false).send(authData).then(function (res) {
return contextifyWithAuthToken(res, context);
});
},
/**
* @param {String} login
* @param {String} password
* @return {Promise.<{name:String, email:String, authKey:String}>}
*/
cloudLogin: function cloudLogin(login, password) {
return req.post(routes.cloudLogin()).unwrapBody(false).send({
login: login,
password: password
}).then(function (res) {
if (res.body.otpCreated) {
return res.body;
}
return contextifyWithAuthToken(res, context);
});
},
cloudLoginWithTOTP: function cloudLoginWithTOTP(authData) {
return req.post(routes.cloudLoginWithTOTP()).unwrapBody(false).send(authData).then(function (res) {
return contextifyWithAuthToken(res, context);
});
},
loginSocial: function loginSocial(type) {
return req.get(routes.socialLogin(type));
},
logout: function logout() {
return req["delete"](routes.logout()).then(function () {
context.setAuthKey(null);
if ((0, _cookie.cookieEnabled)()) {
(0, _cookie.deleteCookie)('dev-auth-key');
}
});
},
restorePassword: function restorePassword(email) {
return req.post(routes.restorePassword()).type('application/x-www-form-urlencoded; charset=UTF-8').send('email=' + encodeURIComponent(email));
},
resendConfirmEmail: function resendConfirmEmail(email) {
return req.get(routes.resendConfirmEmail()).query({
email: email
});
},
updateProfile: function updateProfile(profile) {
return req.put(routes.updateMyAccount(), profile);
},
registerAndJoinAppTeam: function registerAndJoinAppTeam(appId, confirmationCode, userData) {
return req.post(routes.devToAppTeam(appId)).query({
'confirmation-code': confirmationCode
}).unwrapBody(false).send(userData).then(function (res) {
return contextifyWithAuthToken(res, context);
});
},
registerAndJoinWorkspace: function registerAndJoinWorkspace(workspaceId, confirmationCode, userData) {
return req.automation.post(routes.devToAutomationWorkspace(workspaceId)).query({
'confirmation-code': confirmationCode
}).unwrapBody(false).send(userData).then(function (res) {
return contextifyWithAuthToken(res, context);
});
},
loginToDiscourse: function loginToDiscourse(user, sig, sso) {
return req.post(routes.discourseSSO(), {
user: user,
sig: sig,
sso: sso
});
},
getPermissions: function getPermissions(appId) {
return req.get(routes.devPermissions(appId));
},
completeStripeConnection: function completeStripeConnection(data) {
return req.post(routes.stripeConnectionAuth(), data);
},
getStripeConnectToken: function getStripeConnectToken() {
return req.get(routes.stripeConnectionToken());
},
getStripeConnectAccountId: function getStripeConnectAccountId() {
return req.get(routes.stripeConnect());
},
setStripeConnectAccountId: function setStripeConnectAccountId(data) {
return req.put(routes.stripeConnect(), data);
},
get2FAState: function get2FAState() {
return req.get(routes.twoFA());
},
update2FAState: function update2FAState(enabled) {
return req.put(routes.twoFA(), {
enabled: enabled
});
},
changePassword: function changePassword(id, password) {
return req.post(routes.changePassword(), {
id: id,
password: password
});
}
};
};
exports["default"] = _default;
function contextifyWithAuthToken(res, context) {
var authKey = (0, _cookie.cookieEnabled)() && (0, _cookie.getCookie)('dev-auth-key') || res.headers['auth-key'];
context.setAuthKey(authKey);
return _objectSpread(_objectSpread({}, res.body), {}, {
authKey: authKey
});
}