mtcute/packages/client/src/methods/users/get-users.ts

55 lines
1.4 KiB
TypeScript
Raw Normal View History

2021-04-08 12:19:38 +03:00
import { InputPeerLike, User } from '../../types'
import { TelegramClient } from '../../client'
2021-08-05 20:38:24 +03:00
import { MaybeArray } from '@mtcute/core'
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
? res.map((it) => new User(this, it))
: new User(this, res[0])
2021-04-08 12:19:38 +03:00
}