From df7ccaea9d9d9928dbed205c5ebb2a4b3359ed04 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 16 May 2018 11:17:40 -0400 Subject: [PATCH] move search functions to utils helper --- src/commands/list.command.ts | 32 +++++----------------------- src/utils.ts | 41 ++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 27 deletions(-) create mode 100644 src/utils.ts diff --git a/src/commands/list.command.ts b/src/commands/list.command.ts index 9156ea9025..25fce71aa4 100644 --- a/src/commands/list.command.ts +++ b/src/commands/list.command.ts @@ -10,6 +10,8 @@ import { CollectionResponse } from '../models/response/collectionResponse'; import { FolderResponse } from '../models/response/folderResponse'; import { ListResponse } from '../models/response/listResponse'; +import { CliUtils } from '../utils'; + export class ListCommand { constructor(private cipherService: CipherService, private folderService: FolderService, private collectionService: CollectionService) { } @@ -69,19 +71,7 @@ export class ListCommand { } if (cmd.search != null && cmd.search.trim() !== '') { - const search = cmd.search.toLowerCase(); - ciphers = ciphers.filter((c) => { - if (c.name != null && c.name.toLowerCase().indexOf(search) > -1) { - return true; - } - if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(search) > -1) { - return true; - } - if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(search) > -1) { - return true; - } - return false; - }); + ciphers = CliUtils.searchCiphers(ciphers, cmd.search); } const res = new ListResponse(ciphers.map((o) => new CipherResponse(o))); @@ -92,13 +82,7 @@ export class ListCommand { let folders = await this.folderService.getAllDecrypted(); if (cmd.search != null && cmd.search.trim() !== '') { - const search = cmd.search.toLowerCase(); - folders = folders.filter((f) => { - if (f.name != null && f.name.toLowerCase().indexOf(search) > -1) { - return true; - } - return false; - }); + folders = CliUtils.searchFolders(folders, cmd.search); } const res = new ListResponse(folders.map((o) => new FolderResponse(o))); @@ -118,13 +102,7 @@ export class ListCommand { } if (cmd.search != null && cmd.search.trim() !== '') { - const search = cmd.search.toLowerCase(); - collections = collections.filter((c) => { - if (c.name != null && c.name.toLowerCase().indexOf(search) > -1) { - return true; - } - return false; - }); + collections = CliUtils.searchCollections(collections, cmd.search); } const res = new ListResponse(collections.map((o) => new CollectionResponse(o))); diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000000..9ffe241b05 --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,41 @@ +import { CipherView } from 'jslib/models/view/cipherView'; +import { CollectionView } from 'jslib/models/view/collectionView'; +import { FolderView } from 'jslib/models/view/folderView'; + +export class CliUtils { + static searchCiphers(ciphers: CipherView[], search: string) { + search = search.toLowerCase(); + return ciphers.filter((c) => { + if (c.name != null && c.name.toLowerCase().indexOf(search) > -1) { + return true; + } + if (c.subTitle != null && c.subTitle.toLowerCase().indexOf(search) > -1) { + return true; + } + if (c.login && c.login.uri != null && c.login.uri.toLowerCase().indexOf(search) > -1) { + return true; + } + return false; + }); + } + + static searchFolders(folders: FolderView[], search: string) { + search = search.toLowerCase(); + return folders.filter((f) => { + if (f.name != null && f.name.toLowerCase().indexOf(search) > -1) { + return true; + } + return false; + }); + } + + static searchCollections(collections: CollectionView[], search: string) { + search = search.toLowerCase(); + return collections.filter((c) => { + if (c.name != null && c.name.toLowerCase().indexOf(search) > -1) { + return true; + } + return false; + }); + } +}