diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py
index be726c44..84fc4f20 100644
--- a/compiler/docs/compiler.py
+++ b/compiler/docs/compiler.py
@@ -253,6 +253,8 @@ def pyrogram_api():
get_chat_admin_invite_links_count
get_chat_admins_with_invite_links
delete_chat_admin_invite_links
+ approve_chat_join_request
+ decline_chat_join_request
""",
contacts="""
Contacts
diff --git a/pyrogram/methods/invite_links/__init__.py b/pyrogram/methods/invite_links/__init__.py
index 198ce1bd..ccdad312 100644
--- a/pyrogram/methods/invite_links/__init__.py
+++ b/pyrogram/methods/invite_links/__init__.py
@@ -17,17 +17,19 @@
# along with Pyrogram. If not, see .
+from .approve_chat_join_request import ApproveChatJoinRequest
from .create_chat_invite_link import CreateChatInviteLink
+from .decline_chat_join_request import DeclineChatJoinRequest
from .delete_chat_admin_invite_links import DeleteChatAdminInviteLinks
from .delete_chat_invite_link import DeleteChatInviteLink
from .edit_chat_invite_link import EditChatInviteLink
from .export_chat_invite_link import ExportChatInviteLink
+from .get_chat_admin_invite_links import GetChatAdminInviteLinks
+from .get_chat_admin_invite_links_count import GetChatAdminInviteLinksCount
from .get_chat_admins_with_invite_links import GetChatAdminsWithInviteLinks
from .get_chat_invite_link import GetChatInviteLink
from .get_chat_invite_link_members import GetChatInviteLinkMembers
from .get_chat_invite_link_members_count import GetChatInviteLinkMembersCount
-from .get_chat_admin_invite_links import GetChatAdminInviteLinks
-from .get_chat_admin_invite_links_count import GetChatAdminInviteLinksCount
from .revoke_chat_invite_link import RevokeChatInviteLink
@@ -43,6 +45,8 @@ class InviteLinks(
DeleteChatAdminInviteLinks,
GetChatAdminInviteLinksCount,
GetChatAdminsWithInviteLinks,
- GetChatInviteLink
+ GetChatInviteLink,
+ ApproveChatJoinRequest,
+ DeclineChatJoinRequest
):
- pass
\ No newline at end of file
+ pass
diff --git a/pyrogram/methods/invite_links/approve_chat_join_request.py b/pyrogram/methods/invite_links/approve_chat_join_request.py
new file mode 100644
index 00000000..013b64fe
--- /dev/null
+++ b/pyrogram/methods/invite_links/approve_chat_join_request.py
@@ -0,0 +1,55 @@
+# Pyrogram - Telegram MTProto API Client Library for Python
+# Copyright (C) 2017-2021 Dan
+#
+# This file is part of Pyrogram.
+#
+# Pyrogram is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Pyrogram is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Pyrogram. If not, see .
+
+from typing import Union
+
+from pyrogram import raw
+from pyrogram.scaffold import Scaffold
+
+
+class ApproveChatJoinRequest(Scaffold):
+ async def approve_chat_join_request(
+ self,
+ chat_id: Union[int, str],
+ user_id: int,
+ ) -> bool:
+ """Approve a chat join request.
+
+ The bot must be an administrator in the chat for this to work and must have the *can_invite_users* administrator
+ right.
+
+ Parameters:
+ chat_id (``int`` | ``str``):
+ Unique identifier for the target chat or username of the target channel/supergroup
+ (in the format @username).
+
+ user_id (``int``):
+ Unique identifier of the target user.
+
+ Returns:
+ ``bool``: True on success.
+ """
+ await self.send(
+ raw.functions.messages.HideChatJoinRequest(
+ peer=await self.resolve_peer(chat_id),
+ user_id=await self.resolve_peer(user_id),
+ approved=True
+ )
+ )
+
+ return True
diff --git a/pyrogram/methods/invite_links/decline_chat_join_request.py b/pyrogram/methods/invite_links/decline_chat_join_request.py
new file mode 100644
index 00000000..5a0f942c
--- /dev/null
+++ b/pyrogram/methods/invite_links/decline_chat_join_request.py
@@ -0,0 +1,55 @@
+# Pyrogram - Telegram MTProto API Client Library for Python
+# Copyright (C) 2017-2021 Dan
+#
+# This file is part of Pyrogram.
+#
+# Pyrogram is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Pyrogram is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Pyrogram. If not, see .
+
+from typing import Union
+
+from pyrogram import raw
+from pyrogram.scaffold import Scaffold
+
+
+class DeclineChatJoinRequest(Scaffold):
+ async def decline_chat_join_request(
+ self,
+ chat_id: Union[int, str],
+ user_id: int,
+ ) -> bool:
+ """Decline a chat join request.
+
+ The bot must be an administrator in the chat for this to work and must have the *can_invite_users* administrator
+ right.
+
+ Parameters:
+ chat_id (``int`` | ``str``):
+ Unique identifier for the target chat or username of the target channel/supergroup
+ (in the format @username).
+
+ user_id (``int``):
+ Unique identifier of the target user.
+
+ Returns:
+ ``bool``: True on success.
+ """
+ await self.send(
+ raw.functions.messages.HideChatJoinRequest(
+ peer=await self.resolve_peer(chat_id),
+ user_id=await self.resolve_peer(user_id),
+ approved=False
+ )
+ )
+
+ return True