Skip to content
Snippets Groups Projects
Select Git revision
  • fd93c1873422a274f1e42410db1d2e2e4bbaafc0
  • release default protected
  • 11-22-implement-kv-interface-defined-in-collectiveversionedkvgo
  • hotfix/TestHostPool_UpdateNdf_AddFilter
  • XX-4719/announcementChannels
  • xx-4717/logLevel
  • jonah/noob-channel
  • master protected
  • XX-4707/tagDiskJson
  • xx-4698/notification-retry
  • hotfix/notifylockup
  • syncNodes
  • hotfix/localCB
  • XX-4677/NewChanManagerMobile
  • XX-4689/DmSync
  • duplicatePrefix
  • XX-4601/HavenInvites
  • finalizedUICallbacks
  • XX-4673/AdminKeySync
  • debugNotifID
  • anne/test
  • v4.7.5
  • v4.7.4
  • v4.7.3
  • v4.7.2
  • v4.7.1
  • v4.6.3
  • v4.6.1
  • v4.5.0
  • v4.4.4
  • v4.3.11
  • v4.3.8
  • v4.3.7
  • v4.3.6
  • v4.3.5
  • v4.2.0
  • v4.3.0
  • v4.3.4
  • v4.3.3
  • v4.3.2
  • v4.3.1
41 results

utils_test.go

Blame
  • Contact.swift 2.28 KiB
    import Foundation
    
    public struct Contact {
      public init(
        data: Data,
        getIdFromContact: GetIdFromContact,
        getPublicKeyFromContact: GetPublicKeyFromContact,
        getFactsFromContact: GetFactsFromContact,
        setFactsOnContact: SetFactsOnContact
      ) {
        self.data = data
        self.getIdFromContact = getIdFromContact
        self.getPublicKeyFromContact = getPublicKeyFromContact
        self.getFactsFromContact = getFactsFromContact
        self.setFactsOnContact = setFactsOnContact
      }
    
      public var data: Data
      public var getIdFromContact: GetIdFromContact
      public var getPublicKeyFromContact: GetPublicKeyFromContact
      public var getFactsFromContact: GetFactsFromContact
      public var setFactsOnContact: SetFactsOnContact
    
      public func getId() throws -> Data {
        try getIdFromContact(data)
      }
    
      public func getPublicKey() throws -> Data {
        try getPublicKeyFromContact(data)
      }
    
      public func getFacts() throws -> [Fact] {
        try getFactsFromContact(data)
      }
    
      public mutating func setFacts(_ facts: [Fact]) throws {
        data = try setFactsOnContact(contactData: data, facts: facts)
      }
    }
    
    extension Contact: Equatable {
      public static func == (lhs: Contact, rhs: Contact) -> Bool {
        lhs.data == rhs.data
      }
    }
    
    extension Contact {
      public func getFact(_ type: FactType) throws -> Fact? {
        try getFacts().get(type)
      }
    
      public mutating func setFact(_ type: FactType, _ value: String?) throws {
        var facts = try getFacts()
        facts.set(type, value)
        try setFacts(facts)
      }
    }
    
    extension Contact {
      public static func live(
        _ data: Data,
        getIdFromContact: GetIdFromContact = .live,
        getPublicKeyFromContact: GetPublicKeyFromContact = .live,
        getFactsFromContact: GetFactsFromContact = .live,
        setFactsOnContact: SetFactsOnContact = .live
      ) -> Contact {
        Contact(
          data: data,
          getIdFromContact: getIdFromContact,
          getPublicKeyFromContact: getPublicKeyFromContact,