UNPKG

@devmn/cloud-cli

Version:

CLI tool for Intelligo Cloud.

292 lines 10.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const HttpClient_1 = require("./HttpClient"); class ApiManager { constructor(baseUrl, appToken, authTokenSaver) { this.appToken = appToken; this.authTokenSaver = authTokenSaver; const self = this; this.http = new HttpClient_1.default(baseUrl, appToken, ApiManager.authToken, function () { return self.getAuthToken(ApiManager.lastKnownPassword); }); } callApi(path, method /*| 'POST_DATA' Not used */, data) { const http = this.http; return Promise.resolve().then(http.fetch(method, path, data)); } destroy() { this.http.destroy(); } setAuthToken(authToken) { ApiManager.authToken = authToken; this.http.setAuthToken(authToken); } static isLoggedIn() { return !!ApiManager.authToken; } getAuthToken(password) { const http = this.http; ApiManager.lastKnownPassword = password; let authTokenFetched = ''; const self = this; return Promise.resolve() // .then(http.fetch(http.POST, '/login', { password })) .then(function (data) { authTokenFetched = data.token; self.setAuthToken(authTokenFetched); return authTokenFetched; }) .then(self.authTokenSaver) .then(function () { return authTokenFetched; }); } getCaptainInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/info', {})); } updateRootDomain(rootDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/changerootdomain', { rootDomain })); } enableRootSsl(emailAddress) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/enablessl', { emailAddress })); } forceSsl(isEnabled) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/forcessl', { isEnabled })); } getAllApps() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appDefinitions', {})); } fetchBuildLogs(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appData/' + appName, {})); } uploadAppData(appName, file, gitHash) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST_DATA, '/user/apps/appData/' + appName + '?detached=1', { sourceFile: file, gitHash })); } uploadCaptainDefinitionContent(appName, captainDefinition, gitHash, detached) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appData/' + appName + (detached ? '?detached=1' : ''), { captainDefinitionContent: JSON.stringify(captainDefinition), gitHash })); } updateConfigAndSave(appName, appDefinition) { const instanceCount = appDefinition.instanceCount; const envVars = appDefinition.envVars; const notExposeAsWebApp = appDefinition.notExposeAsWebApp; const forceSsl = appDefinition.forceSsl; const volumes = appDefinition.volumes; const ports = appDefinition.ports; const nodeId = appDefinition.nodeId; const appPushWebhook = appDefinition.appPushWebhook; const customNginxConfig = appDefinition.customNginxConfig; const preDeployFunction = appDefinition.preDeployFunction; const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/update', { appName, instanceCount, notExposeAsWebApp, forceSsl, volumes, ports, customNginxConfig, appPushWebhook, nodeId, preDeployFunction, envVars })); } registerNewApp(appName, hasPersistentData) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/register', { appName, hasPersistentData })); } deleteApp(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/delete', { appName })); } enableSslForBaseDomain(appName) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/enablebasedomainssl', { appName })); } attachNewCustomDomainToApp(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/customdomain', { appName, customDomain })); } enableSslForCustomDomain(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/enablecustomdomainssl', { appName, customDomain })); } removeCustomDomain(appName, customDomain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/removecustomdomain', { appName, customDomain })); } getLoadBalancerInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/loadbalancerinfo', {})); } getNetDataInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/netdata', {})); } updateNetDataInfo(netDataInfo) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/netdata', { netDataInfo })); } changePass(oldPassword, newPassword) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/changepassword', { oldPassword, newPassword })); } getVersionInfo() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/versioninfo', {})); } performUpdate(latestVersion) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/versioninfo', { latestVersion })); } getNginxConfig() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/nginxconfig', {})); } setNginxConfig(customBase, customCaptain) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/nginxconfig', { baseConfig: { customValue: customBase }, captainConfig: { customValue: customCaptain } })); } getUnusedImages(mostRecentLimit) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/apps/appDefinitions/unusedImages', { mostRecentLimit: mostRecentLimit + '' })); } deleteImages(imageIds) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/apps/appDefinitions/deleteImages', { imageIds })); } getDockerRegistries() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/registries', {})); } enableSelfHostedDockerRegistry() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/selfhostregistry/enableregistry', {})); } disableSelfHostedDockerRegistry() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/selfhostregistry/disableregistry', {})); } addDockerRegistry(dockerRegistry) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/insert', Object.assign({}, dockerRegistry))); } updateDockerRegistry(dockerRegistry) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/update', Object.assign({}, dockerRegistry))); } deleteDockerRegistry(registryId) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/delete', { registryId })); } setDefaultPushDockerRegistry(registryId) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/registries/setpush', { registryId })); } getAllNodes() { const http = this.http; return Promise.resolve() // .then(http.fetch(http.GET, '/user/system/nodes', {})); } addDockerNode(nodeType, privateKey, remoteNodeIpAddress, captainIpAddress) { const http = this.http; return Promise.resolve() // .then(http.fetch(http.POST, '/user/system/nodes', { nodeType, privateKey, remoteNodeIpAddress, captainIpAddress })); } } ApiManager.lastKnownPassword = process.env .REACT_APP_DEFAULT_PASSWORD ? process.env.REACT_APP_DEFAULT_PASSWORD + '' : 'captain42'; ApiManager.authToken = !!process.env.REACT_APP_IS_DEBUG ? // tslint:disable-next-line: max-line-length 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7Im5hbWVzcGFjZSI6ImNhcHRhaW4iLCJ0b2tlblZlcnNpb24iOiI5NmRjM2U1MC00ZDk3LTRkNmItYTIzMS04MmNiZjY0ZTA2NTYifSwiaWF0IjoxNTQ1OTg0MDQwLCJleHAiOjE1ODE5ODQwNDB9.uGJyhb2JYsdw9toyMKX28bLVuB0PhnS2POwEjKpchww' : ''; exports.default = ApiManager; //# sourceMappingURL=ApiManager.js.map