Skip to content

remove separate pass phrase table, add as a column on keys table #441

@tomholub

Description

@tomholub

It's an odd choice for a database schema to make user entered pass phrase string a primary key.

//
//  PassPhraseInfo.swift
//  FlowCrypt
//
//  Created by Anton Kharchevskyi on 04.06.2021.
//  Copyright © 2021 FlowCrypt Limited. All rights reserved.
//

import Foundation
import RealmSwift

/// PassPhrase object to store in Realm
final class PassPhraseObject: Object {
    @objc dynamic var value: String = ""
    let allFingerprints = List<String>()

    convenience init(
        value: String = "",
        fingerprints: [String]
    ) {
        self.init()
        self.value = value
        self.allFingerprints.append(objectsIn: fingerprints)
    }

    override class func primaryKey() -> String? {
        "value"
    }
}

// MARK: - Convenience
extension PassPhraseObject {
    var primaryFingerprint: String {
        allFingerprints[0]
    }

    convenience init(_ passPhrase: PassPhrase) {
        self.init(value: passPhrase.value, fingerprints: passPhrase.fingerprints)
    }
}

extension PassPhrase {
    init(object: PassPhraseObject) {
        self.value = object.value
        self.fingerprints = Array(object.allFingerprints)
        self.date = nil
    }
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions