UNPKG

forest-cli

Version:

The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.

68 lines 7.35 kB
const querystring = require('querystring'); const agent = require('superagent'); const Context = require('@forestadmin/context'); const ProjectSerializer = require('../serializers/project'); const ProjectDeserializer = require('../deserializers/project'); const EnvironmentDeserializer = require('../deserializers/environment'); function ProjectManager(config) { const { assertPresent, authenticator, env, jwtDecode, lodash } = Context.inject(); assertPresent({ authenticator, env, jwtDecode, lodash }); function deserialize(response) { const attrs = Object.assign(ProjectSerializer.opts.attributes); attrs.push('id'); return ProjectDeserializer.deserialize(response.body).then(deserialized => { if (Array.isArray(deserialized)) { return deserialized.map(d => lodash.pick(d, attrs)); } return lodash.pick(deserialized, attrs); }); } this.listProjects = async () => { const authToken = authenticator.getAuthToken(); const authTokenDecode = jwtDecode(authToken); const queryParams = querystring.stringify({ ...(authTokenDecode.organizationId ? { organizationId: authTokenDecode.organizationId } : {}), }); return agent .get(`${env.FOREST_SERVER_URL}/api/projects${queryParams ? `?${queryParams}` : ''}`) .set('Authorization', `Bearer ${authToken}`) .send() .then(response => deserialize(response)); }; this.getByEnvSecret = async (envSecret, includeLegacy = false) => { const authToken = authenticator.getAuthToken(); const includeLegacyParameter = includeLegacy ? '&includeLegacy' : ''; return agent .get(`${env.FOREST_SERVER_URL}/api/projects?envSecret${includeLegacyParameter}`) .set('Authorization', `Bearer ${authToken}`) .set('forest-secret-key', envSecret) .send() .then(response => deserialize(response)); }; this.getProject = async () => { const authToken = authenticator.getAuthToken(); return agent .get(`${env.FOREST_SERVER_URL}/api/projects/${config.projectId}`) .set('Authorization', `Bearer ${authToken}`) .send() .then(response => deserialize(response)); }; this.getProjectForDevWorkflow = async () => { const authToken = authenticator.getAuthToken(); return agent .get(`${env.FOREST_SERVER_URL}/api/projects/${config.projectId}/dev-workflow`) .set('Authorization', `Bearer ${authToken}`) .send() .then(response => deserialize(response)); }; this.getDevelopmentEnvironmentForUser = async (projectId) => { const authToken = authenticator.getAuthToken(); return agent .get(`${env.FOREST_SERVER_URL}/api/projects/${projectId}/development-environment-for-user`) .set('Authorization', `Bearer ${authToken}`) .send() .then(response => EnvironmentDeserializer.deserialize(response.body)); }; } module.exports = ProjectManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3Byb2plY3QtbWFuYWdlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDM0MsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBRWhELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7QUFDNUQsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUNoRSxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRXhFLFNBQVMsY0FBYyxDQUFDLE1BQU07SUFDNUIsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEYsYUFBYSxDQUFDLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUV6RCxTQUFTLFdBQVcsQ0FBQyxRQUFRO1FBQzNCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakIsT0FBTyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN4RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8s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