From b01709240e4fc0674caea4edfebe5e46249c2bd2 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 25 Jan 2019 09:30:21 -0500 Subject: [PATCH] init view properties --- src/models/view/attachmentView.ts | 12 ++++----- src/models/view/cardView.ts | 10 +++---- src/models/view/cipherView.ts | 32 +++++++++++------------ src/models/view/collectionView.ts | 8 +++--- src/models/view/fieldView.ts | 6 ++--- src/models/view/folderView.ts | 4 +-- src/models/view/identityView.ts | 36 +++++++++++++------------- src/models/view/loginUriView.ts | 8 +++--- src/models/view/loginView.ts | 10 +++---- src/models/view/passwordHistoryView.ts | 4 +-- src/models/view/secureNoteView.ts | 2 +- src/services/import.service.ts | 6 ++++- src/services/search.service.ts | 4 +-- 13 files changed, 73 insertions(+), 69 deletions(-) diff --git a/src/models/view/attachmentView.ts b/src/models/view/attachmentView.ts index aff342c9f8..43f0716763 100644 --- a/src/models/view/attachmentView.ts +++ b/src/models/view/attachmentView.ts @@ -4,12 +4,12 @@ import { Attachment } from '../domain/attachment'; import { SymmetricCryptoKey } from '../domain/symmetricCryptoKey'; export class AttachmentView implements View { - id: string; - url: string; - size: number; - sizeName: string; - fileName: string; - key: SymmetricCryptoKey; + id: string = null; + url: string = null; + size: number = null; + sizeName: string = null; + fileName: string = null; + key: SymmetricCryptoKey = null; constructor(a?: Attachment) { if (!a) { diff --git a/src/models/view/cardView.ts b/src/models/view/cardView.ts index df3497c96c..3add0356b6 100644 --- a/src/models/view/cardView.ts +++ b/src/models/view/cardView.ts @@ -3,15 +3,15 @@ import { View } from './view'; import { Card } from '../domain/card'; export class CardView implements View { - cardholderName: string; + cardholderName: string = null; expMonth: string = null; - expYear: string; - code: string; + expYear: string = null; + code: string = null; // tslint:disable private _brand: string = null; - private _number: string; - private _subTitle: string; + private _number: string = null; + private _subTitle: string = null; // tslint:enable constructor(c?: Card) { diff --git a/src/models/view/cipherView.ts b/src/models/view/cipherView.ts index b231be4f28..14feea8c42 100644 --- a/src/models/view/cipherView.ts +++ b/src/models/view/cipherView.ts @@ -12,25 +12,25 @@ import { SecureNoteView } from './secureNoteView'; import { View } from './view'; export class CipherView implements View { - id: string; - organizationId: string; - folderId: string; - name: string; - notes: string; - type: CipherType; + id: string = null; + organizationId: string = null; + folderId: string = null; + name: string = null; + notes: string = null; + type: CipherType = null; favorite = false; organizationUseTotp = false; edit = false; localData: any; - login: LoginView; - identity: IdentityView; - card: CardView; - secureNote: SecureNoteView; - attachments: AttachmentView[]; - fields: FieldView[]; - passwordHistory: PasswordHistoryView[]; - collectionIds: string[]; - revisionDate: Date; + login = new LoginView(); + identity = new IdentityView(); + card = new CardView(); + secureNote = new SecureNoteView(); + attachments: AttachmentView[] = null; + fields: FieldView[] = null; + passwordHistory: PasswordHistoryView[] = null; + collectionIds: string[] = null; + revisionDate: Date = null; constructor(c?: Cipher) { if (!c) { @@ -90,7 +90,7 @@ export class CipherView implements View { } get passwordRevisionDisplayDate(): Date { - if (this.login == null) { + if (this.type !== CipherType.Login || this.login == null) { return null; } else if (this.login.password == null || this.login.password === '') { return null; diff --git a/src/models/view/collectionView.ts b/src/models/view/collectionView.ts index f667f742db..7f4e52ed90 100644 --- a/src/models/view/collectionView.ts +++ b/src/models/view/collectionView.ts @@ -4,10 +4,10 @@ import { Collection } from '../domain/collection'; import { ITreeNodeObject } from '../domain/treeNode'; export class CollectionView implements View, ITreeNodeObject { - id: string; - organizationId: string; - name: string; - readOnly: boolean; + id: string = null; + organizationId: string = null; + name: string = null; + readOnly: boolean = null; constructor(c?: Collection) { if (!c) { diff --git a/src/models/view/fieldView.ts b/src/models/view/fieldView.ts index e09d60960e..20d695da15 100644 --- a/src/models/view/fieldView.ts +++ b/src/models/view/fieldView.ts @@ -5,9 +5,9 @@ import { View } from './view'; import { Field } from '../domain/field'; export class FieldView implements View { - name: string; - value: string; - type: FieldType; + name: string = null; + value: string = null; + type: FieldType = null; constructor(f?: Field) { if (!f) { diff --git a/src/models/view/folderView.ts b/src/models/view/folderView.ts index a61091b2fd..1446a972bd 100644 --- a/src/models/view/folderView.ts +++ b/src/models/view/folderView.ts @@ -5,8 +5,8 @@ import { ITreeNodeObject } from '../domain/treeNode'; export class FolderView implements View, ITreeNodeObject { id: string = null; - name: string; - revisionDate: Date; + name: string = null; + revisionDate: Date = null; constructor(f?: Folder) { if (!f) { diff --git a/src/models/view/identityView.ts b/src/models/view/identityView.ts index 246ed7a763..b6adae4d69 100644 --- a/src/models/view/identityView.ts +++ b/src/models/view/identityView.ts @@ -6,26 +6,26 @@ import { Utils } from '../../misc/utils'; export class IdentityView implements View { title: string = null; - middleName: string; - address1: string; - address2: string; - address3: string; - city: string; - state: string; - postalCode: string; - country: string; - company: string; - email: string; - phone: string; - ssn: string; - username: string; - passportNumber: string; - licenseNumber: string; + middleName: string = null; + address1: string = null; + address2: string = null; + address3: string = null; + city: string = null; + state: string = null; + postalCode: string = null; + country: string = null; + company: string = null; + email: string = null; + phone: string = null; + ssn: string = null; + username: string = null; + passportNumber: string = null; + licenseNumber: string = null; // tslint:disable - private _firstName: string; - private _lastName: string; - private _subTitle: string; + private _firstName: string = null; + private _lastName: string = null; + private _subTitle: string = null; // tslint:enable constructor(i?: Identity) { diff --git a/src/models/view/loginUriView.ts b/src/models/view/loginUriView.ts index 70698ca33d..84e37176c1 100644 --- a/src/models/view/loginUriView.ts +++ b/src/models/view/loginUriView.ts @@ -20,10 +20,10 @@ export class LoginUriView implements View { match: UriMatchType = null; // tslint:disable - private _uri: string; - private _domain: string; - private _hostname: string; - private _canLaunch: boolean; + private _uri: string = null; + private _domain: string = null; + private _hostname: string = null; + private _canLaunch: boolean = null; // tslint:enable constructor(u?: LoginUri) { diff --git a/src/models/view/loginView.ts b/src/models/view/loginView.ts index 822a9361d3..8f4173ea92 100644 --- a/src/models/view/loginView.ts +++ b/src/models/view/loginView.ts @@ -4,11 +4,11 @@ import { View } from './view'; import { Login } from '../domain/login'; export class LoginView implements View { - username: string; - password: string; - passwordRevisionDate?: Date; - totp: string; - uris: LoginUriView[]; + username: string = null; + password: string = null; + passwordRevisionDate?: Date = null; + totp: string = null; + uris: LoginUriView[] = null; constructor(l?: Login) { if (!l) { diff --git a/src/models/view/passwordHistoryView.ts b/src/models/view/passwordHistoryView.ts index 946424ffa9..5a0ca0e6c9 100644 --- a/src/models/view/passwordHistoryView.ts +++ b/src/models/view/passwordHistoryView.ts @@ -3,8 +3,8 @@ import { View } from './view'; import { Password } from '../domain/password'; export class PasswordHistoryView implements View { - password: string; - lastUsedDate: Date; + password: string = null; + lastUsedDate: Date = null; constructor(ph?: Password) { if (!ph) { diff --git a/src/models/view/secureNoteView.ts b/src/models/view/secureNoteView.ts index 1047c41086..6bd4cde70c 100644 --- a/src/models/view/secureNoteView.ts +++ b/src/models/view/secureNoteView.ts @@ -5,7 +5,7 @@ import { View } from './view'; import { SecureNote } from '../domain/secureNote'; export class SecureNoteView implements View { - type: SecureNoteType; + type: SecureNoteType = null; constructor(n?: SecureNote) { if (!n) { diff --git a/src/services/import.service.ts b/src/services/import.service.ts index 32a7a625c8..72e12181a5 100644 --- a/src/services/import.service.ts +++ b/src/services/import.service.ts @@ -10,6 +10,10 @@ import { import { ImportResult } from '../models/domain/importResult'; +import { CipherType } from '../enums/cipherType'; + +import { Utils } from '../misc/utils'; + import { CipherRequest } from '../models/request/cipherRequest'; import { CollectionRequest } from '../models/request/collectionRequest'; import { FolderRequest } from '../models/request/folderRequest'; @@ -278,6 +282,6 @@ export class ImportService implements ImportServiceAbstraction { private badData(c: CipherView) { return (c.name == null || c.name === '--') && - (c.login != null && (c.login.password == null || c.login.password === '')); + (c.type === CipherType.Login && c.login != null && Utils.isNullOrWhitespace(c.login.password)); } } diff --git a/src/services/search.service.ts b/src/services/search.service.ts index 5c5c5aa51f..e279c22670 100644 --- a/src/services/search.service.ts +++ b/src/services/search.service.ts @@ -54,7 +54,7 @@ export class SearchService implements SearchServiceAbstraction { }); builder.field('notes'); (builder as any).field('login.username', { - extractor: (c: CipherView) => c.login != null ? c.login.username : null, + extractor: (c: CipherView) => c.type === CipherType.Login && c.login != null ? c.login.username : null, }); (builder as any).field('login.uris', { boost: 2, extractor: (c: CipherView) => this.uriExtractor(c) }); (builder as any).field('fields', { extractor: (c: CipherView) => this.fieldExtractor(c, false) }); @@ -198,7 +198,7 @@ export class SearchService implements SearchServiceAbstraction { } private uriExtractor(c: CipherView) { - if (c.login == null || !c.login.hasUris) { + if (c.type !== CipherType.Login || c.login == null || !c.login.hasUris) { return null; } const uris: string[] = [];