2022-05-30 15:40:11 +04:00

71 lines
1.9 KiB
TypeScript

import BigInt from 'big-integer';
import type {
ApiChat, ApiPhoto, ApiReportReason, ApiUser,
} from '../../types';
import { invokeRequest } from './client';
import { Api as GramJs } from '../../../lib/gramjs';
import { buildInputPeer, buildInputReportReason, buildInputPhoto } from '../gramjsBuilders';
export async function reportPeer({
peer,
reason,
description,
}: {
peer: ApiChat | ApiUser; reason: ApiReportReason; description?: string;
}) {
const result = await invokeRequest(new GramJs.account.ReportPeer({
peer: buildInputPeer(peer.id, peer.accessHash),
reason: buildInputReportReason(reason),
message: description,
}));
return result;
}
export async function reportProfilePhoto({
peer,
photo,
reason,
description,
}: {
peer: ApiChat | ApiUser; photo: ApiPhoto; reason: ApiReportReason; description?: string;
}) {
const photoId = buildInputPhoto(photo);
if (!photoId) return undefined;
const result = await invokeRequest(new GramJs.account.ReportProfilePhoto({
peer: buildInputPeer(peer.id, peer.accessHash),
photoId,
reason: buildInputReportReason(reason),
message: description,
}));
return result;
}
export async function changeSessionSettings({
hash, areCallsEnabled, areSecretChatsEnabled,
}: {
hash: string; areCallsEnabled?: boolean; areSecretChatsEnabled?: boolean;
}) {
const result = await invokeRequest(new GramJs.account.ChangeAuthorizationSettings({
hash: BigInt(hash),
...(areCallsEnabled !== undefined ? { callRequestsDisabled: !areCallsEnabled } : undefined),
...(areSecretChatsEnabled !== undefined ? { encryptedRequestsDisabled: !areSecretChatsEnabled } : undefined),
}));
return result;
}
export async function changeSessionTtl({
days,
}: {
days: number;
}) {
const result = await invokeRequest(new GramJs.account.SetAuthorizationTTL({
authorizationTtlDays: days,
}));
return result;
}