UNPKG

@pradyumn-el/pollycli

Version:

pollycli lets users access the functionalities of Polly over a command line interface

77 lines (71 loc) 2.05 kB
const pollymsg = require('./message'); const { pollyApi } = require('./api-client'); const { handleApiError } = require('./helper-functions'); export async function listPollyProjects(type, value) { let projectUrl = '/workspaces'; let projectData = []; let ApiData = {}; try { do { ApiData = await pollyApi.get(projectUrl); ApiData = ApiData.data; projectData = [...projectData, ...ApiData.data] projectUrl = ApiData.links.next; } while (ApiData && ApiData.links && ApiData.links.next); if (type == 'latest' || type == 'all') { projectData.sort(function(a, b) { return b.id - a.id }); } else { projectData.sort(function(a, b) { return a.id - b.id }); } let data = [['Workspace ID', 'Workspace name']]; for (const project of projectData) { data.push([project.id, project.attributes.name]) } if (type == 'all') { value = 100000; } pollymsg.pollyTable(data, 1, value); } catch (error) { const err_msg = "Not able to get the list of workspaces"; if(error.isAxiosError) { handleApiError(error, err_msg); } pollymsg.pollyError(err_msg); } } export async function createProject(name, description) { if (!name) { pollymsg.pollyError("Workspace name not given"); } const projectUrl = `/workspaces` const payload = { "data": { "type": "workspaces", "attributes": { name, description, "project_property":{ "type": "workspaces", "labels": "" } } } }; try { let projectData = await pollyApi.post(projectUrl, payload); pollymsg.pollySuccess("Project created") projectData = projectData.data.data; let data = [['Workspace ID', 'Workspace name'], [projectData.id, name]]; pollymsg.pollyTable(data); } catch (error) { const err_msg = "Not able to create the workspace"; if(error.isAxiosError) { handleApiError(error, err_msg); } pollymsg.pollyError(err_msg); } }