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

47 lines
1.1 KiB
TypeScript
Raw Normal View History

import Long from 'long'
import { tl } from '@mtcute/tl'
2021-05-09 14:35:58 +03:00
import { TelegramClient } from '../../client'
2021-08-05 20:38:24 +03:00
import { InputPeerLike, MtInvalidPeerTypeError, Photo } from '../../types'
2021-05-09 14:35:58 +03:00
import { normalizeToInputUser } from '../../utils/peer-utils'
/**
* Get a list of profile pictures of a user
*
* @param userId User ID, username, phone number, `"me"` or `"self"`
* @param params
* @internal
*/
export async function getProfilePhotos(
this: TelegramClient,
userId: InputPeerLike,
params?: {
/**
* Offset from which to fetch.
*
* Defaults to `0`
*/
offset?: number
/**
* Maximum number of items to fetch (up to 100)
*
* Defaults to `100`
*/
limit?: number
},
2021-05-09 14:35:58 +03:00
): Promise<Photo[]> {
if (!params) params = {}
const res = await this.call({
_: 'photos.getUserPhotos',
userId: normalizeToInputUser(await this.resolvePeer(userId), userId),
2021-05-09 14:35:58 +03:00
offset: params.offset ?? 0,
limit: params.limit ?? 100,
maxId: Long.ZERO,
2021-05-09 14:35:58 +03:00
})
return res.photos.map((it) => new Photo(this, it as tl.RawPhoto))
}