xmtp-ios/Sources/XMTP/Messages/Topic.swift

43 lines
1.0 KiB
Swift

//
// Topic.swift
//
//
// Created by Pat Nakajima on 11/17/22.
//
public enum Topic {
case userPrivateStoreKeyBundle(String),
contact(String),
userIntro(String),
userInvite(String),
groupInvite(String),
directMessageV1(String, String),
directMessageV2(String)
var description: String {
switch self {
case let .userPrivateStoreKeyBundle(address):
return wrap("privatestore-\(address)/key_bundle")
case let .contact(address):
return wrap("contact-\(address)")
case let .userIntro(address):
return wrap("intro-\(address)")
case let .userInvite(address):
return wrap("invite-\(address)")
case let .groupInvite(address):
return wrap("groupInvite-\(address)")
case let .directMessageV1(address1, address2):
let addresses = [address1, address2].sorted().joined(separator: "-")
return wrap("dm-\(addresses)")
case let .directMessageV2(randomString):
return wrap("m-\(randomString)")
}
}
private func wrap(_ value: String) -> String {
"/xmtp/0/\(value)/proto"
}
}