@elucidatainc/pollycli
Version:
pollycli lets users access the functionalities of Polly over a command line interface
106 lines (100 loc) • 2.55 kB
JavaScript
const pollymsg = require("./message");
const { workspaceApi } = require('./api-client')
const { handleApiError } = require("./helper-functions");
export async function listPollyProjects(type, value) {
const requestUrl = '_search'
const search_payload = {
from: 0,
size: 20,
sort: [
{
created_date: {
order: 'desc',
},
},
],
query: {
bool: {
must: [
{
nested: {
path: 'permissions',
query: {
match: {
'permissions.user_id': '{user_id}',
},
},
},
}
],
},
},
}
let projectData = [];
let workspacesData = {}
try {
do {
workspacesData = await workspaceApi.post(requestUrl, search_payload)
projectData = [...projectData, ...workspacesData.data.hits.hits]
search_payload.from += search_payload.size
if (search_payload.from >= workspacesData.data.hits.total.value) {
break
}
} while (workspacesData.data.hits.hits.length > 0)
if (type == "latest" || type == "all") {
projectData.sort(function (a, b) {
return b._source.id - a._source.id
});
} else {
projectData.sort(function (a, b) {
return a._source.id - b._source.id
});
}
let data = [["Workspace ID", "Workspace name"]];
for (const project of projectData) {
data.push([project._id, project._source.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) {
const projectUrl = `/workspaces`;
const payload = {
data: {
type: "workspaces",
attributes: {
name,
description,
project_property: {
type: "workspaces",
labels: "",
},
},
},
};
try {
let projectData = await workspaceApi.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);
}
}