From e55528e61737635e7f8970b913bcc3f10bede85d Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 24 Aug 2020 12:21:17 -0400 Subject: [PATCH] adds support for yoti csv importer (#157) --- src/importers/yotiCsvImporter.ts | 28 ++++++++++++++++++++++++++++ src/services/import.service.ts | 4 ++++ 2 files changed, 32 insertions(+) create mode 100644 src/importers/yotiCsvImporter.ts diff --git a/src/importers/yotiCsvImporter.ts b/src/importers/yotiCsvImporter.ts new file mode 100644 index 0000000000..2651e6fa70 --- /dev/null +++ b/src/importers/yotiCsvImporter.ts @@ -0,0 +1,28 @@ +import { BaseImporter } from './baseImporter'; +import { Importer } from './importer'; + +import { ImportResult } from '../models/domain/importResult'; + +export class YotiCsvImporter extends BaseImporter implements Importer { + parse(data: string): ImportResult { + const result = new ImportResult(); + const results = this.parseCsv(data, true); + if (results == null) { + result.success = false; + return result; + } + + results.forEach((value) => { + const cipher = this.initLoginCipher(); + cipher.name = this.getValueOrDefault(value.Name, '--'); + cipher.login.username = this.getValueOrDefault(value['User name']); + cipher.login.password = this.getValueOrDefault(value.Password); + cipher.login.uris = this.makeUriArray(value.URL); + this.cleanupCipher(cipher); + result.ciphers.push(cipher); + }); + + result.success = true; + return result; + } +} diff --git a/src/services/import.service.ts b/src/services/import.service.ts index e7b58550ca..a74fc2c62d 100644 --- a/src/services/import.service.ts +++ b/src/services/import.service.ts @@ -72,6 +72,7 @@ import { SplashIdCsvImporter } from '../importers/splashIdCsvImporter'; import { StickyPasswordXmlImporter } from '../importers/stickyPasswordXmlImporter'; import { TrueKeyCsvImporter } from '../importers/truekeyCsvImporter'; import { UpmCsvImporter } from '../importers/upmCsvImporter'; +import { YotiCsvImporter } from '../importers/yotiCsvImporter'; import { ZohoVaultCsvImporter } from '../importers/zohoVaultCsvImporter'; export class ImportService implements ImportServiceAbstraction { @@ -131,6 +132,7 @@ export class ImportService implements ImportServiceAbstraction { { id: 'buttercupcsv', name: 'Buttercup (csv)' }, { id: 'codebookcsv', name: 'Codebook (csv)' }, { id: 'encryptrcsv', name: 'Encryptr (csv)' }, + { id: 'yoticsv', name: 'Yoti (csv)' }, ]; constructor(private cipherService: CipherService, private folderService: FolderService, @@ -279,6 +281,8 @@ export class ImportService implements ImportServiceAbstraction { return new CodebookCsvImporter(); case 'encryptrcsv': return new EncryptrCsvImporter(); + case 'yoticsv': + return new YotiCsvImporter(); default: return null; }