@pradyumn-el/pollycli
Version:
pollycli lets users access the functionalities of Polly over a command line interface
77 lines (71 loc) • 2.05 kB
JavaScript
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);
}
}