mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Swift
		
	
| // Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| @objc(SNOpenGroupServerIdLookup)
 | |
| public final class OpenGroupServerIdLookup: NSObject, NSCoding {    // NSObject/NSCoding conformance is needed for YapDatabase compatibility
 | |
|     @objc public let id: String
 | |
|     @objc public let serverId: UInt64
 | |
|     @objc public let tsMessageId: String
 | |
|     
 | |
|     // MARK: - Initialization
 | |
|         
 | |
|     @objc public init(server: String, room: String, serverId: UInt64, tsMessageId: String) {
 | |
|         self.id = OpenGroupServerIdLookup.id(serverId: serverId, in: room, on: server)
 | |
|         self.serverId = serverId
 | |
|         self.tsMessageId = tsMessageId
 | |
| 
 | |
|         super.init()
 | |
|     }
 | |
| 
 | |
|     private override init() { preconditionFailure("Use init(blindedId:sessionId:) instead.") }
 | |
| 
 | |
|     // MARK: - Coding
 | |
|     
 | |
|     public required init?(coder: NSCoder) {
 | |
|         guard let id: String = coder.decodeObject(forKey: "id") as! String? else { return nil }
 | |
|         guard let serverId: UInt64 = coder.decodeObject(forKey: "serverId") as! UInt64? else { return nil }
 | |
|         guard let tsMessageId: String = coder.decodeObject(forKey: "tsMessageId") as! String? else { return nil }
 | |
| 
 | |
|         self.id = id
 | |
|         self.serverId = serverId
 | |
|         self.tsMessageId = tsMessageId
 | |
|     }
 | |
| 
 | |
|     public func encode(with coder: NSCoder) {
 | |
|         coder.encode(id, forKey: "id")
 | |
|         coder.encode(serverId, forKey: "serverId")
 | |
|         coder.encode(tsMessageId, forKey: "tsMessageId")
 | |
|     }
 | |
|     
 | |
|     // MARK: - Convenience
 | |
|     
 | |
|     static func id(serverId: UInt64, in room: String, on server: String) -> String {
 | |
|         return "\(server).\(room).\(serverId)"
 | |
|     }
 | |
| }
 |