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
		
	
| 
											4 years ago
										 | // 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)" | ||
|  |     } | ||
|  | } |