in src/extensions/speech_extension/commands/custom_speech_recognition_command.cs [646:777]
private void GetListParameters(string kind, out string path, out string message, out string query)
{
kind = _values.GetOrDefault("csr.list.kind", kind);
var listLanguages = _values.GetOrDefault("csr.list.languages", false);
var languageKind = _values.GetOrDefault("csr.list.languages.kind", listLanguages ? kind.TrimEnd('s') : "");
var list = _values.GetOrEmpty("csr.list.id");
var listOk = list.StartsWith("http");
var listId = listOk ? "" : list;
var dataset = _values.GetOrEmpty("csr.dataset.id");
var datasetOk = !string.IsNullOrEmpty(dataset) && dataset.StartsWith("http");
var kindIsDatasets = kind == "datasets";
var datasetId = IdHelpers.GetIdFromNamedValue(_values, "csr.dataset.id", kindIsDatasets ? listId : "");
var datasetIdOk = !string.IsNullOrEmpty(datasetId) && !datasetId.StartsWith("http");
var datasetFiles = _values.GetOrDefault("csr.list.dataset.files", datasetOk || datasetIdOk);
if (datasetFiles && !datasetOk && !datasetIdOk)
{
_values.AddThrowError(
"WARNING:", $"Cannot list dataset files without a valid dataset ID/URL!",
"USE:", $"{Program.Name} csr dataset list --dataset ID/URL --files");
}
var evaluation = _values.GetOrEmpty("csr.evaluation.id");
var evaluationOk = !string.IsNullOrEmpty(evaluation) && evaluation.StartsWith("http");
var kindIsEvaluations = kind == "evaluations";
var evaluationId = IdHelpers.GetIdFromNamedValue(_values, "csr.evaluation.id", kindIsEvaluations ? listId : "");
var evaluationIdOk = !string.IsNullOrEmpty(evaluationId) && !evaluationId.StartsWith("http");
var evaluationFiles = _values.GetOrDefault("csr.list.evaluation.files", evaluationOk || evaluationIdOk);
if (evaluationFiles && !evaluationIdOk && !evaluationIdOk)
{
_values.AddThrowError(
"WARNING:", $"Cannot list evaluation files without a valid evaluation ID/URL!",
"USE:", $"{Program.Name} csr evaluation list --evaluation ID/URL --files");
}
var endpoint = _values.GetOrEmpty("csr.endpoint.id");
var endpointOk = !string.IsNullOrEmpty(endpoint) && endpoint.StartsWith("http");
var kindIsEndpoints = kind == "endpoints";
var endpointId = IdHelpers.GetIdFromNamedValue(_values, "csr.endpoint.id", kindIsEndpoints ? listId : "");
var endpointIdOk = !string.IsNullOrEmpty(endpointId) && !endpointId.StartsWith("http");
var endpointLogs = _values.GetOrDefault("csr.list.endpoint.logs", endpointOk || endpointIdOk);
if (endpointLogs && !endpointOk && !endpointIdOk)
{
_values.AddThrowError(
"WARNING:", $"Cannot list endpoint logs without a valid endpoint ID/URL!",
"USE:", $"{Program.Name} csr endpoint list --endpoint ID/URL --logs");
}
path = "";
message = "";
if (datasetOk)
{
path = $"{dataset}/files";
message = "Listing dataset files ...";
}
else if (datasetIdOk)
{
path = $"datasets/{datasetId}/files";
message = "Listing dataset files ...";
}
else if (evaluationOk)
{
path = evaluation.EndsWith("/files") ? evaluation : $"{evaluation}/files";
message = "Listing evaluation files ...";
}
else if (evaluationIdOk)
{
path = $"evaluations/{evaluationId}/files";
message = "Listing evaluation files ...";
}
else if (endpointOk)
{
path = endpoint.EndsWith("/files/logs") ? endpoint : $"{endpoint}/files/logs";
message = "Listing endpoint logs";
}
else if (endpointIdOk)
{
path = $"endpoints/{endpointId}/files/logs";
message = "Listing endpoint logs ...";
}
else if (listOk && list.Contains("/datasets/"))
{
path = list.EndsWith("/files") ? list : $"{list}/files";
message = "Listing dataset files ...";
}
else if (listOk && list.Contains("/evaluations/"))
{
path = list.EndsWith("/files") ? list : $"{list}/files";
message = "Listing evaluation files ...";
}
else if (listOk && list.Contains("/endpoints/"))
{
path = list.EndsWith("/files") ? list : $"{list}/files";
message = "Listing endpoint files ...";
}
else if (!string.IsNullOrEmpty(languageKind))
{
path = $"{languageKind}s/locales";
message = $"Listing {languageKind} languages ...";
}
else if (!string.IsNullOrEmpty(kind))
{
var projectId = IdHelpers.GetIdFromNamedValue(_values, "csr.project.id");
var projectOk = !string.IsNullOrEmpty(projectId);
path = projectOk ? $"projects/{projectId}/{kind}" : kind;
message = $"Listing {kind} ...";
}
else
{
_values.AddThrowError(
"WARNING:", $"Couldn't find resource type to list!",
"SEE:", $"{Program.Name} help csr");
}
var top = _values.GetOrEmpty("csr.top");
var skip = _values.GetOrEmpty("csr.skip");
query = "";
if (!string.IsNullOrEmpty(skip)) query += $"&skip={skip}";
if (!string.IsNullOrEmpty(top)) query += $"&top={top}";
query = query.Trim('&');
}