2021-04-08 12:19:38 +03:00
|
|
|
import { TelegramClient } from '../../client'
|
|
|
|
import { tl } from '@mtcute/tl'
|
|
|
|
import { Message, MtCuteTypeAssertionError } from '../../types'
|
2021-04-08 20:23:23 +03:00
|
|
|
import { createUsersChatsIndex } from '../../utils/peer-utils'
|
2021-04-08 12:19:38 +03:00
|
|
|
|
|
|
|
/** @internal */
|
|
|
|
export function _findMessageInUpdate(
|
|
|
|
this: TelegramClient,
|
|
|
|
res: tl.TypeUpdates
|
|
|
|
): Message {
|
|
|
|
if (!(res._ === 'updates' || res._ === 'updatesCombined'))
|
|
|
|
throw new MtCuteTypeAssertionError(
|
|
|
|
'_findMessageInUpdate',
|
|
|
|
'updates | updatesCombined',
|
|
|
|
res._
|
|
|
|
)
|
|
|
|
|
|
|
|
for (const u of res.updates) {
|
|
|
|
if (
|
|
|
|
u._ === 'updateNewMessage' ||
|
|
|
|
u._ === 'updateNewChannelMessage' ||
|
|
|
|
u._ === 'updateNewScheduledMessage'
|
|
|
|
) {
|
2021-04-08 20:23:23 +03:00
|
|
|
const { users, chats } = createUsersChatsIndex(res)
|
2021-04-08 12:19:38 +03:00
|
|
|
|
|
|
|
return new Message(
|
|
|
|
this,
|
|
|
|
u.message,
|
|
|
|
users,
|
|
|
|
chats,
|
|
|
|
u._ === 'updateNewScheduledMessage'
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
throw new MtCuteTypeAssertionError(
|
|
|
|
'_findMessageInUpdate (@ -> updates[*])',
|
|
|
|
'updateNewMessage | updateNewChannelMessage | updateNewScheduledMessage',
|
|
|
|
'none'
|
|
|
|
)
|
|
|
|
}
|