2021-04-08 12:19:38 +03:00
|
|
|
import { InputPeerLike, User } from '../../types'
|
|
|
|
import { TelegramClient } from '../../client'
|
2021-07-25 21:03:40 +03:00
|
|
|
import { MaybeArray } from '@mtqt/core'
|
|
|
|
import { tl } from '@mtqt/tl'
|
2021-04-08 12:19:38 +03:00
|
|
|
import { normalizeToInputUser } from '../../utils/peer-utils'
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get information about a single user.
|
|
|
|
*
|
|
|
|
* @param id User's identifier. Can be ID, username, phone number, `"me"` or `"self"` or TL object
|
|
|
|
* @internal
|
|
|
|
*/
|
|
|
|
export async function getUsers(
|
|
|
|
this: TelegramClient,
|
|
|
|
id: InputPeerLike
|
|
|
|
): Promise<User>
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get information about multiple users.
|
2021-05-11 22:43:11 +03:00
|
|
|
* You can retrieve up to 200 users at once.
|
|
|
|
*
|
|
|
|
* Note that order is not guaranteed.
|
2021-04-08 12:19:38 +03:00
|
|
|
*
|
|
|
|
* @param ids Users' identifiers. Can be ID, username, phone number, `"me"`, `"self"` or TL object
|
|
|
|
* @internal
|
|
|
|
*/
|
|
|
|
export async function getUsers(
|
|
|
|
this: TelegramClient,
|
|
|
|
ids: InputPeerLike[]
|
|
|
|
): Promise<User[]>
|
|
|
|
|
|
|
|
/** @internal */
|
|
|
|
export async function getUsers(
|
|
|
|
this: TelegramClient,
|
|
|
|
ids: MaybeArray<InputPeerLike>
|
|
|
|
): Promise<MaybeArray<User>> {
|
|
|
|
const isArray = Array.isArray(ids)
|
|
|
|
if (!isArray) ids = [ids as InputPeerLike]
|
|
|
|
|
2021-05-11 22:43:11 +03:00
|
|
|
const inputPeers = await this.resolvePeerMany(
|
|
|
|
ids as InputPeerLike[],
|
|
|
|
normalizeToInputUser
|
|
|
|
)
|
2021-04-08 12:19:38 +03:00
|
|
|
|
|
|
|
let res = await this.call({
|
|
|
|
_: 'users.getUsers',
|
|
|
|
id: inputPeers,
|
|
|
|
})
|
|
|
|
|
|
|
|
res = res.filter((it) => it._ !== 'userEmpty')
|
|
|
|
|
|
|
|
return isArray
|
2021-04-26 23:26:57 +03:00
|
|
|
? res.map((it) => new User(this, it))
|
|
|
|
: new User(this, res[0])
|
2021-04-08 12:19:38 +03:00
|
|
|
}
|