multiple results response

This commit is contained in:
Kyle Spearrin 2018-05-16 12:00:40 -04:00
parent 0490c6ba3f
commit e73a00f4a2
2 changed files with 12 additions and 3 deletions

View File

@ -77,7 +77,7 @@ export class GetCommand {
let ciphers = await this.cipherService.getAllDecrypted();
ciphers = CliUtils.searchCiphers(ciphers, id);
if (ciphers.length > 1) {
return Response.error('More than one result was found.');
return Response.multipleResults(ciphers.map((c) => c.id));
}
if (ciphers.length > 0) {
decCipher = ciphers[0];
@ -126,7 +126,7 @@ export class GetCommand {
let folders = await this.folderService.getAllDecrypted();
folders = CliUtils.searchFolders(folders, id);
if (folders.length > 1) {
return Response.error('More than one result was found.');
return Response.multipleResults(folders.map((f) => f.id));
}
if (folders.length > 0) {
decFolder = folders[0];
@ -151,7 +151,7 @@ export class GetCommand {
let collections = await this.collectionService.getAllDecrypted();
collections = CliUtils.searchCollections(collections, id);
if (collections.length > 1) {
return Response.error('More than one result was found.');
return Response.multipleResults(collections.map((c) => c.id));
}
if (collections.length > 0) {
decCollection = collections[0];

View File

@ -20,6 +20,15 @@ export class Response {
return Response.error(message);
}
static multipleResults(ids: string[]): Response {
let msg = 'More than one result was found. Try getting a specific object by `id` instead. ' +
'The following objects were found:';
ids.forEach((id) => {
msg += '\n' + id;
});
return Response.error(msg);
}
static success(data?: BaseResponse): Response {
const res = new Response();
res.success = true;