Refactor constructor use sites for types 200-209 to struct pattern

Refactored constructors: messageReactions, messageReactor, messageReplies,
messageReplyHeader, messageReplyStoryHeader, messageViews,
inputMessagesFilterPhoneCalls, messagePeerVote, messagePeerVoteInputOption,
messagePeerVoteMultiple, messageReportOption, missingInvitee

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Isaac 2026-01-18 01:01:19 +08:00
parent 61983a113a
commit 94b53b190a
9 changed files with 208 additions and 42 deletions

View file

@ -41,9 +41,37 @@ public extension Api {
}
public extension Api {
enum MessagePeerVote: TypeConstructorDescription {
case messagePeerVote(peer: Api.Peer, option: Buffer, date: Int32)
case messagePeerVoteInputOption(peer: Api.Peer, date: Int32)
case messagePeerVoteMultiple(peer: Api.Peer, options: [Buffer], date: Int32)
public class Cons_messagePeerVote {
public var peer: Api.Peer
public var option: Buffer
public var date: Int32
public init(peer: Api.Peer, option: Buffer, date: Int32) {
self.peer = peer
self.option = option
self.date = date
}
}
public class Cons_messagePeerVoteInputOption {
public var peer: Api.Peer
public var date: Int32
public init(peer: Api.Peer, date: Int32) {
self.peer = peer
self.date = date
}
}
public class Cons_messagePeerVoteMultiple {
public var peer: Api.Peer
public var options: [Buffer]
public var date: Int32
public init(peer: Api.Peer, options: [Buffer], date: Int32) {
self.peer = peer
self.options = options
self.date = date
}
}
case messagePeerVote(Cons_messagePeerVote)
case messagePeerVoteInputOption(Cons_messagePeerVoteInputOption)
case messagePeerVoteMultiple(Cons_messagePeerVoteMultiple)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -86,7 +114,15 @@ public extension Api {
}
public extension Api {
enum MessageRange: TypeConstructorDescription {
case messageRange(minId: Int32, maxId: Int32)
public class Cons_messageRange {
public var minId: Int32
public var maxId: Int32
public init(minId: Int32, maxId: Int32) {
self.minId = minId
self.maxId = maxId
}
}
case messageRange(Cons_messageRange)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -115,7 +151,19 @@ public extension Api {
}
public extension Api {
enum MessageReactions: TypeConstructorDescription {
case messageReactions(flags: Int32, results: [Api.ReactionCount], recentReactions: [Api.MessagePeerReaction]?, topReactors: [Api.MessageReactor]?)
public class Cons_messageReactions {
public var flags: Int32
public var results: [Api.ReactionCount]
public var recentReactions: [Api.MessagePeerReaction]?
public var topReactors: [Api.MessageReactor]?
public init(flags: Int32, results: [Api.ReactionCount], recentReactions: [Api.MessagePeerReaction]?, topReactors: [Api.MessageReactor]?) {
self.flags = flags
self.results = results
self.recentReactions = recentReactions
self.topReactors = topReactors
}
}
case messageReactions(Cons_messageReactions)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -144,7 +192,17 @@ public extension Api {
}
public extension Api {
enum MessageReactor: TypeConstructorDescription {
case messageReactor(flags: Int32, peerId: Api.Peer?, count: Int32)
public class Cons_messageReactor {
public var flags: Int32
public var peerId: Api.Peer?
public var count: Int32
public init(flags: Int32, peerId: Api.Peer?, count: Int32) {
self.flags = flags
self.peerId = peerId
self.count = count
}
}
case messageReactor(Cons_messageReactor)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -173,7 +231,25 @@ public extension Api {
}
public extension Api {
enum MessageReplies: TypeConstructorDescription {
case messageReplies(flags: Int32, replies: Int32, repliesPts: Int32, recentRepliers: [Api.Peer]?, channelId: Int64?, maxId: Int32?, readMaxId: Int32?)
public class Cons_messageReplies {
public var flags: Int32
public var replies: Int32
public var repliesPts: Int32
public var recentRepliers: [Api.Peer]?
public var channelId: Int64?
public var maxId: Int32?
public var readMaxId: Int32?
public init(flags: Int32, replies: Int32, repliesPts: Int32, recentRepliers: [Api.Peer]?, channelId: Int64?, maxId: Int32?, readMaxId: Int32?) {
self.flags = flags
self.replies = replies
self.repliesPts = repliesPts
self.recentRepliers = recentRepliers
self.channelId = channelId
self.maxId = maxId
self.readMaxId = readMaxId
}
}
case messageReplies(Cons_messageReplies)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -202,8 +278,40 @@ public extension Api {
}
public extension Api {
indirect enum MessageReplyHeader: TypeConstructorDescription {
case messageReplyHeader(flags: Int32, replyToMsgId: Int32?, replyToPeerId: Api.Peer?, replyFrom: Api.MessageFwdHeader?, replyMedia: Api.MessageMedia?, replyToTopId: Int32?, quoteText: String?, quoteEntities: [Api.MessageEntity]?, quoteOffset: Int32?, todoItemId: Int32?)
case messageReplyStoryHeader(peer: Api.Peer, storyId: Int32)
public class Cons_messageReplyHeader {
public var flags: Int32
public var replyToMsgId: Int32?
public var replyToPeerId: Api.Peer?
public var replyFrom: Api.MessageFwdHeader?
public var replyMedia: Api.MessageMedia?
public var replyToTopId: Int32?
public var quoteText: String?
public var quoteEntities: [Api.MessageEntity]?
public var quoteOffset: Int32?
public var todoItemId: Int32?
public init(flags: Int32, replyToMsgId: Int32?, replyToPeerId: Api.Peer?, replyFrom: Api.MessageFwdHeader?, replyMedia: Api.MessageMedia?, replyToTopId: Int32?, quoteText: String?, quoteEntities: [Api.MessageEntity]?, quoteOffset: Int32?, todoItemId: Int32?) {
self.flags = flags
self.replyToMsgId = replyToMsgId
self.replyToPeerId = replyToPeerId
self.replyFrom = replyFrom
self.replyMedia = replyMedia
self.replyToTopId = replyToTopId
self.quoteText = quoteText
self.quoteEntities = quoteEntities
self.quoteOffset = quoteOffset
self.todoItemId = todoItemId
}
}
public class Cons_messageReplyStoryHeader {
public var peer: Api.Peer
public var storyId: Int32
public init(peer: Api.Peer, storyId: Int32) {
self.peer = peer
self.storyId = storyId
}
}
case messageReplyHeader(Cons_messageReplyHeader)
case messageReplyStoryHeader(Cons_messageReplyStoryHeader)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -239,7 +347,15 @@ public extension Api {
}
public extension Api {
enum MessageReportOption: TypeConstructorDescription {
case messageReportOption(text: String, option: Buffer)
public class Cons_messageReportOption {
public var text: String
public var option: Buffer
public init(text: String, option: Buffer) {
self.text = text
self.option = option
}
}
case messageReportOption(Cons_messageReportOption)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -268,7 +384,19 @@ public extension Api {
}
public extension Api {
enum MessageViews: TypeConstructorDescription {
case messageViews(flags: Int32, views: Int32?, forwards: Int32?, replies: Api.MessageReplies?)
public class Cons_messageViews {
public var flags: Int32
public var views: Int32?
public var forwards: Int32?
public var replies: Api.MessageReplies?
public init(flags: Int32, views: Int32?, forwards: Int32?, replies: Api.MessageReplies?) {
self.flags = flags
self.views = views
self.forwards = forwards
self.replies = replies
}
}
case messageViews(Cons_messageViews)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG
@ -297,6 +425,12 @@ public extension Api {
}
public extension Api {
enum MessagesFilter: TypeConstructorDescription {
public class Cons_inputMessagesFilterPhoneCalls {
public var flags: Int32
public init(flags: Int32) {
self.flags = flags
}
}
case inputMessagesFilterChatPhotos
case inputMessagesFilterContacts
case inputMessagesFilterDocument
@ -305,7 +439,7 @@ public extension Api {
case inputMessagesFilterGif
case inputMessagesFilterMusic
case inputMessagesFilterMyMentions
case inputMessagesFilterPhoneCalls(flags: Int32)
case inputMessagesFilterPhoneCalls(Cons_inputMessagesFilterPhoneCalls)
case inputMessagesFilterPhotoVideo
case inputMessagesFilterPhotos
case inputMessagesFilterPinned
@ -454,7 +588,15 @@ public extension Api {
}
public extension Api {
enum MissingInvitee: TypeConstructorDescription {
case missingInvitee(flags: Int32, userId: Int64)
public class Cons_missingInvitee {
public var flags: Int32
public var userId: Int64
public init(flags: Int32, userId: Int64) {
self.flags = flags
self.userId = userId
}
}
case missingInvitee(Cons_missingInvitee)
public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) {
#if DEBUG

View file

@ -5,7 +5,8 @@ import TelegramApi
extension ReactionsMessageAttribute {
func withUpdatedResults(_ reactions: Api.MessageReactions) -> ReactionsMessageAttribute {
switch reactions {
case let .messageReactions(flags, results, recentReactions, topReactors):
case let .messageReactions(messageReactionsData):
let (flags, results, recentReactions, topReactors) = (messageReactionsData.flags, messageReactionsData.results, messageReactionsData.recentReactions, messageReactionsData.topReactors)
let min = (flags & (1 << 0)) != 0
let canViewList = (flags & (1 << 2)) != 0
let isTags = (flags & (1 << 3)) != 0
@ -60,7 +61,8 @@ extension ReactionsMessageAttribute {
if let topReactors {
for item in topReactors {
switch item {
case let .messageReactor(flags, peerId, count):
case let .messageReactor(messageReactorData):
let (flags, peerId, count) = (messageReactorData.flags, messageReactorData.peerId, messageReactorData.count)
topPeers.append(ReactionsMessageAttribute.TopPeer(
peerId: peerId?.peerId,
count: count,
@ -71,7 +73,7 @@ extension ReactionsMessageAttribute {
}
}
}
return ReactionsMessageAttribute(canViewList: canViewList, isTags: isTags, reactions: reactions, recentPeers: parsedRecentReactions, topPeers: topPeers)
}
}
@ -259,7 +261,8 @@ public func mergedMessageReactions(attributes: [MessageAttribute], isTags: Bool)
extension ReactionsMessageAttribute {
convenience init(apiReactions: Api.MessageReactions) {
switch apiReactions {
case let .messageReactions(flags, results, recentReactions, topReactors):
case let .messageReactions(messageReactionsData):
let (flags, results, recentReactions, topReactors) = (messageReactionsData.flags, messageReactionsData.results, messageReactionsData.recentReactions, messageReactionsData.topReactors)
let canViewList = (flags & (1 << 2)) != 0
let isTags = (flags & (1 << 3)) != 0
let parsedRecentReactions: [ReactionsMessageAttribute.RecentPeer]
@ -286,7 +289,8 @@ extension ReactionsMessageAttribute {
if let topReactors {
for item in topReactors {
switch item {
case let .messageReactor(flags, peerId, count):
case let .messageReactor(messageReactorData):
let (flags, peerId, count) = (messageReactorData.flags, messageReactorData.peerId, messageReactorData.count)
topPeers.append(ReactionsMessageAttribute.TopPeer(
peerId: peerId?.peerId,
count: count,

View file

@ -211,7 +211,8 @@ func apiMessagePeerIds(_ message: Api.Message) -> [PeerId] {
if let replyTo = replyTo {
switch replyTo {
case let .messageReplyStoryHeader(peer, _):
case let .messageReplyStoryHeader(messageReplyStoryHeaderData):
let peer = messageReplyStoryHeaderData.peer
let storyPeerId = peer.peerId
if !result.contains(storyPeerId) {
result.append(storyPeerId)
@ -307,7 +308,8 @@ func apiMessageAssociatedMessageIds(_ message: Api.Message) -> (replyIds: Refere
let peerId: PeerId = chatPeerId.peerId
switch replyTo {
case let .messageReplyHeader(_, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId):
case let .messageReplyHeader(messageReplyHeaderData):
let (replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId) = (messageReplyHeaderData.replyToMsgId, messageReplyHeaderData.replyToPeerId, messageReplyHeaderData.replyFrom, messageReplyHeaderData.replyMedia, messageReplyHeaderData.replyToTopId, messageReplyHeaderData.quoteText, messageReplyHeaderData.quoteEntities, messageReplyHeaderData.quoteOffset, messageReplyHeaderData.todoItemId)
let _ = replyHeader
let _ = replyMedia
let _ = replyToTopId
@ -332,7 +334,8 @@ func apiMessageAssociatedMessageIds(_ message: Api.Message) -> (replyIds: Refere
let (id, chatPeerId, replyHeader) = (messageServiceData.id, messageServiceData.peerId, messageServiceData.replyTo)
if let replyHeader = replyHeader {
switch replyHeader {
case let .messageReplyHeader(_, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId):
case let .messageReplyHeader(messageReplyHeaderData):
let (replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId) = (messageReplyHeaderData.replyToMsgId, messageReplyHeaderData.replyToPeerId, messageReplyHeaderData.replyFrom, messageReplyHeaderData.replyMedia, messageReplyHeaderData.replyToTopId, messageReplyHeaderData.quoteText, messageReplyHeaderData.quoteEntities, messageReplyHeaderData.quoteOffset, messageReplyHeaderData.todoItemId)
let _ = replyHeader
let _ = replyMedia
let _ = replyToTopId
@ -816,7 +819,8 @@ extension StoreMessage {
if let replyTo = replyTo {
var threadMessageId: MessageId?
switch replyTo {
case let .messageReplyHeader(innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId):
case let .messageReplyHeader(messageReplyHeaderData):
let (innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId) = (messageReplyHeaderData.flags, messageReplyHeaderData.replyToMsgId, messageReplyHeaderData.replyToPeerId, messageReplyHeaderData.replyFrom, messageReplyHeaderData.replyMedia, messageReplyHeaderData.replyToTopId, messageReplyHeaderData.quoteText, messageReplyHeaderData.quoteEntities, messageReplyHeaderData.quoteOffset, messageReplyHeaderData.todoItemId)
let isForumTopic = (innerFlags & (1 << 3)) != 0
var quote: EngineMessageReplyQuote?
@ -872,15 +876,16 @@ extension StoreMessage {
if let replyHeader = replyHeader {
attributes.append(QuotedReplyMessageAttribute(apiHeader: replyHeader, quote: quote, isQuote: isQuote))
}
case let .messageReplyStoryHeader(peer, storyId):
case let .messageReplyStoryHeader(messageReplyStoryHeaderData):
let (peer, storyId) = (messageReplyStoryHeaderData.peer, messageReplyStoryHeaderData.storyId)
attributes.append(ReplyStoryAttribute(storyId: StoryId(peerId: peer.peerId, id: storyId)))
}
}
if threadId == nil && peerId.namespace == Namespaces.Peer.CloudChannel {
threadId = 1
}
var forwardInfo: StoreMessageForwardInfo?
if let fwdFrom = fwdFrom {
switch fwdFrom {
@ -1085,7 +1090,8 @@ extension StoreMessage {
if let replies = replies {
let recentRepliersPeerIds: [PeerId]?
switch replies {
case let .messageReplies(_, repliesCount, _, recentRepliers, channelId, maxId, readMaxId):
case let .messageReplies(messageRepliesData):
let (repliesCount, recentRepliers, channelId, maxId, readMaxId) = (messageRepliesData.replies, messageRepliesData.recentRepliers, messageRepliesData.channelId, messageRepliesData.maxId, messageRepliesData.readMaxId)
if let recentRepliers = recentRepliers {
recentRepliersPeerIds = recentRepliers.map { $0.peerId }
} else {
@ -1196,27 +1202,30 @@ extension StoreMessage {
if chatPeerId.peerId.namespace == Namespaces.Peer.CloudChannel, let replyTo {
switch replyTo {
case let .messageReplyHeader(innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, _, quoteText, quoteEntities, quoteOffset, todoItemId):
case let .messageReplyHeader(messageReplyHeaderData):
let (innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, quoteText, quoteEntities, quoteOffset, todoItemId) = (messageReplyHeaderData.flags, messageReplyHeaderData.replyToMsgId, messageReplyHeaderData.replyToPeerId, messageReplyHeaderData.replyFrom, messageReplyHeaderData.replyMedia, messageReplyHeaderData.quoteText, messageReplyHeaderData.quoteEntities, messageReplyHeaderData.quoteOffset, messageReplyHeaderData.todoItemId)
var quote: EngineMessageReplyQuote?
let isQuote = (innerFlags & (1 << 9)) != 0
if quoteText != nil || replyMedia != nil {
quote = EngineMessageReplyQuote(text: quoteText ?? "", offset: quoteOffset.flatMap(Int.init), entities: messageTextEntitiesFromApiEntities(quoteEntities ?? []), media: textMediaAndExpirationTimerFromApiMedia(replyMedia, peerId).media)
}
if let replyToMsgId = replyToMsgId {
let replyPeerId = replyToPeerId?.peerId ?? peerId
attributes.append(ReplyMessageAttribute(messageId: MessageId(peerId: replyPeerId, namespace: Namespaces.Message.Cloud, id: replyToMsgId), threadMessageId: nil, quote: quote, isQuote: isQuote, todoItemId: todoItemId))
} else if let replyHeader = replyHeader {
attributes.append(QuotedReplyMessageAttribute(apiHeader: replyHeader, quote: quote, isQuote: isQuote))
}
case let .messageReplyStoryHeader(peer, storyId):
case let .messageReplyStoryHeader(messageReplyStoryHeaderData):
let (peer, storyId) = (messageReplyStoryHeaderData.peer, messageReplyStoryHeaderData.storyId)
attributes.append(ReplyStoryAttribute(storyId: StoryId(peerId: peer.peerId, id: storyId)))
}
}
} else if let replyTo = replyTo {
var threadMessageId: MessageId?
switch replyTo {
case let .messageReplyHeader(innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId):
case let .messageReplyHeader(messageReplyHeaderData):
let (innerFlags, replyToMsgId, replyToPeerId, replyHeader, replyMedia, replyToTopId, quoteText, quoteEntities, quoteOffset, todoItemId) = (messageReplyHeaderData.flags, messageReplyHeaderData.replyToMsgId, messageReplyHeaderData.replyToPeerId, messageReplyHeaderData.replyFrom, messageReplyHeaderData.replyMedia, messageReplyHeaderData.replyToTopId, messageReplyHeaderData.quoteText, messageReplyHeaderData.quoteEntities, messageReplyHeaderData.quoteOffset, messageReplyHeaderData.todoItemId)
var quote: EngineMessageReplyQuote?
let isQuote = (innerFlags & (1 << 9)) != 0
if quoteText != nil || replyMedia != nil {
@ -1246,7 +1255,8 @@ extension StoreMessage {
} else if let replyHeader = replyHeader {
attributes.append(QuotedReplyMessageAttribute(apiHeader: replyHeader, quote: quote, isQuote: isQuote))
}
case let .messageReplyStoryHeader(peer, storyId):
case let .messageReplyStoryHeader(messageReplyStoryHeaderData):
let (peer, storyId) = (messageReplyStoryHeaderData.peer, messageReplyStoryHeaderData.storyId)
attributes.append(ReplyStoryAttribute(storyId: StoryId(peerId: peer.peerId, id: storyId)))
}
} else {

View file

@ -733,7 +733,8 @@ public final class AccountViewTracker {
for i in 0 ..< messageIds.count {
if i < viewCounts.count {
if case let .messageViews(_, views, forwards, replies) = viewCounts[i] {
if case let .messageViews(messageViewsData) = viewCounts[i] {
let (views, forwards, replies) = (messageViewsData.views, messageViewsData.forwards, messageViewsData.replies)
transaction.updateMessage(messageIds[i], update: { currentMessage in
let storeForwardInfo = currentMessage.forwardInfo.flatMap(StoreMessageForwardInfo.init)
var attributes = currentMessage.attributes
@ -745,7 +746,8 @@ public final class AccountViewTracker {
var repliesReadMaxId: Int32?
if let replies = replies {
switch replies {
case let .messageReplies(_, repliesCountValue, _, recentRepliers, channelId, maxId, readMaxId):
case let .messageReplies(messageRepliesData):
let (repliesCountValue, recentRepliers, channelId, maxId, readMaxId) = (messageRepliesData.replies, messageRepliesData.recentRepliers, messageRepliesData.channelId, messageRepliesData.maxId, messageRepliesData.readMaxId)
if let channelId = channelId {
commentsChannelId = PeerId(namespace: Namespaces.Peer.CloudChannel, id: PeerId.Id._internalFromInt64Value(channelId))
}

View file

@ -1210,7 +1210,7 @@ func fetchCallListHole(network: Network, postbox: Postbox, accountPeerId: PeerId
offset = single((holeIndex.timestamp, min(holeIndex.id.id, Int32.max - 1) + 1, Api.InputPeer.inputPeerEmpty), NoError.self)
return offset
|> mapToSignal { (timestamp, id, peer) -> Signal<Void, NoError> in
let searchResult = network.request(Api.functions.messages.search(flags: 0, peer: .inputPeerEmpty, q: "", fromId: nil, savedPeerId: nil, savedReaction: nil, topMsgId: nil, filter: .inputMessagesFilterPhoneCalls(flags: 0), minDate: 0, maxDate: holeIndex.timestamp, offsetId: 0, addOffset: 0, limit: limit, maxId: holeIndex.id.id, minId: 0, hash: 0))
let searchResult = network.request(Api.functions.messages.search(flags: 0, peer: .inputPeerEmpty, q: "", fromId: nil, savedPeerId: nil, savedReaction: nil, topMsgId: nil, filter: .inputMessagesFilterPhoneCalls(.init(flags: 0)), minDate: 0, maxDate: holeIndex.timestamp, offsetId: 0, addOffset: 0, limit: limit, maxId: holeIndex.id.id, minId: 0, hash: 0))
|> retryRequest
|> mapToSignal { result -> Signal<Void, NoError> in
let messages: [Api.Message]

View file

@ -287,11 +287,14 @@ private final class PollResultsOptionContext {
for vote in votes {
let peerId: PeerId
switch vote {
case let .messagePeerVote(peerIdValue, _, _):
case let .messagePeerVote(messagePeerVoteData):
let peerIdValue = messagePeerVoteData.peer
peerId = peerIdValue.peerId
case let .messagePeerVoteInputOption(peerIdValue, _):
case let .messagePeerVoteInputOption(messagePeerVoteInputOptionData):
let peerIdValue = messagePeerVoteInputOptionData.peer
peerId = peerIdValue.peerId
case let .messagePeerVoteMultiple(peerIdValue, _, _):
case let .messagePeerVoteMultiple(messagePeerVoteMultipleData):
let peerIdValue = messagePeerVoteMultipleData.peer
peerId = peerIdValue.peerId
}
if let peer = transaction.getPeer(peerId) {

View file

@ -66,7 +66,8 @@ func _internal_reportContent(account: Account, subject: ReportContentSubject, op
case let .reportResultChooseOption(title, options):
return .options(title: title, options: options.map {
switch $0 {
case let .messageReportOption(text, option):
case let .messageReportOption(messageReportOptionData):
let (text, option) = (messageReportOptionData.text, messageReportOptionData.option)
return ReportContentResult.Option(text: text, option: option.makeData())
}
})

View file

@ -102,7 +102,8 @@ func _internal_addGroupMember(account: Account, peerId: PeerId, memberId: PeerId
let result = TelegramInvitePeersResult(forbiddenPeers: missingInviteesValue.compactMap { invitee -> TelegramForbiddenInvitePeer? in
switch invitee {
case let .missingInvitee(flags, userId):
case let .missingInvitee(missingInviteeData):
let (flags, userId) = (missingInviteeData.flags, missingInviteeData.userId)
guard let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(userId))) else {
return nil
}
@ -189,7 +190,8 @@ func _internal_addChannelMember(account: Account, peerId: PeerId, memberId: Peer
let updatesValue: Api.Updates
switch result {
case let .invitedUsers(updates, missingInvitees):
if case let .missingInvitee(flags, _) = missingInvitees.first {
if case let .missingInvitee(missingInviteeData) = missingInvitees.first {
let flags = missingInviteeData.flags
let _ = _internal_updateIsPremiumRequiredToContact(account: account, peerIds: [memberPeer.id]).startStandalone()
return .fail(.restricted(TelegramForbiddenInvitePeer(
@ -310,7 +312,8 @@ func _internal_addChannelMembers(account: Account, peerId: PeerId, memberIds: [P
return account.postbox.transaction { transaction -> TelegramInvitePeersResult in
let result = TelegramInvitePeersResult(forbiddenPeers: missingInviteesValue.compactMap { invitee -> TelegramForbiddenInvitePeer? in
switch invitee {
case let .missingInvitee(flags, userId):
case let .missingInvitee(missingInviteeData):
let (flags, userId) = (missingInviteeData.flags, missingInviteeData.userId)
guard let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(userId))) else {
return nil
}

View file

@ -77,7 +77,8 @@ func _internal_createGroup(account: Account, title: String, peerIds: [PeerId], t
peerId: peerId,
result: TelegramInvitePeersResult(forbiddenPeers: missingInviteesValue.compactMap { invitee -> TelegramForbiddenInvitePeer? in
switch invitee {
case let .missingInvitee(flags, userId):
case let .missingInvitee(missingInviteeData):
let (flags, userId) = (missingInviteeData.flags, missingInviteeData.userId)
guard let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: PeerId.Id._internalFromInt64Value(userId))) else {
return nil
}