Skip to content

Commit 2e305b9

Browse files
committed
Add support for transferring server ownership
References: - revoltchat/backend#396 - revoltchat/rfcs#14
1 parent 5bad2ee commit 2e305b9

File tree

3 files changed

+37
-14
lines changed

3 files changed

+37
-14
lines changed

pyvolt/http.py

+19-7
Original file line numberDiff line numberDiff line change
@@ -5865,6 +5865,7 @@ async def edit_server(
58655865
flags: UndefinedOr[ServerFlags] = UNDEFINED,
58665866
discoverable: UndefinedOr[bool] = UNDEFINED,
58675867
analytics: UndefinedOr[bool] = UNDEFINED,
5868+
owner: UndefinedOr[typing.Union[str, BaseUser, BaseMember]] = UNDEFINED,
58685869
) -> Server:
58695870
"""|coro|
58705871
@@ -5898,6 +5899,12 @@ async def edit_server(
58985899
The new server flags. You must be a privileged user to provide this.
58995900
analytics: UndefinedOr[:class:`bool`]
59005901
Whether analytics should be collected for this server. Must be enabled in order to show up on `Revolt Discover <https://rvlt.gg>`_.
5902+
owner: UndefinedOr[Union[:class:`str`, :class:`.BaseUser`, :class:`.BaseMember`]]
5903+
The member to transfer ownership to.
5904+
5905+
You must own the server, or be a privileged user to provide this.
5906+
5907+
The target user must be not a bot.
59015908
59025909
Raises
59035910
------
@@ -5922,13 +5929,15 @@ async def edit_server(
59225929
:class:`Forbidden`
59235930
Possible values for :attr:`~HTTPException.type`:
59245931
5925-
+-----------------------+---------------------------------------------------------------------------------------+
5926-
| Value | Reason |
5927-
+-----------------------+---------------------------------------------------------------------------------------+
5928-
| ``MissingPermission`` | You do not have the proper permissions to edit server details. |
5929-
+-----------------------+---------------------------------------------------------------------------------------+
5930-
| ``NotPrivileged`` | You provided ``discoverable`` or ``flags`` parameters and you wasn't privileged user. |
5931-
+-----------------------+---------------------------------------------------------------------------------------+
5932+
+-----------------------+-------------------------------------------------------------------------------------------+
5933+
| Value | Reason |
5934+
+-----------------------+-------------------------------------------------------------------------------------------+
5935+
| ``MissingPermission`` | You do not have the proper permissions to edit server details. |
5936+
+-----------------------+-------------------------------------------------------------------------------------------+
5937+
| ``NotOwner`` | You provided ``owner`` parameter and you didn't own the server or wasn't privileged user. |
5938+
+-----------------------+-------------------------------------------------------------------------------------------+
5939+
| ``NotPrivileged`` | You provided ``discoverable`` or ``flags`` parameters and you wasn't privileged user. |
5940+
+-----------------------+-------------------------------------------------------------------------------------------+
59325941
:class:`NotFound`
59335942
Possible values for :attr:`~HTTPException.type`:
59345943
@@ -5999,6 +6008,9 @@ async def edit_server(
59996008
if analytics is not UNDEFINED:
60006009
payload['analytics'] = analytics
60016010

6011+
if owner is not UNDEFINED:
6012+
payload['owner'] = _resolve_member_id(owner)
6013+
60026014
if len(remove) > 0:
60036015
payload['remove'] = remove
60046016

pyvolt/raw/servers.py

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ class DataEditServer(typing.TypedDict):
122122
flags: typing_extensions.NotRequired[int]
123123
discoverable: typing_extensions.NotRequired[bool]
124124
analytics: typing_extensions.NotRequired[bool]
125+
owner: typing_extensions.NotRequired[str]
125126
remove: typing_extensions.NotRequired[list[FieldsServer]]
126127

127128

pyvolt/server.py

+17-7
Original file line numberDiff line numberDiff line change
@@ -1200,6 +1200,7 @@ async def edit(
12001200
flags: UndefinedOr[ServerFlags] = UNDEFINED,
12011201
discoverable: UndefinedOr[bool] = UNDEFINED,
12021202
analytics: UndefinedOr[bool] = UNDEFINED,
1203+
owner: UndefinedOr[typing.Union[str, BaseUser, BaseMember]] = UNDEFINED,
12031204
) -> Server:
12041205
"""|coro|
12051206
@@ -1233,6 +1234,12 @@ async def edit(
12331234
The new server flags. You must be a privileged user to provide this.
12341235
analytics: UndefinedOr[:class:`bool`]
12351236
Whether analytics should be collected for this server. Must be enabled in order to show up on `Revolt Discover <https://rvlt.gg>`_.
1237+
owner: UndefinedOr[Union[:class:`str`, :class:`.BaseUser`, :class:`.BaseMember`]]
1238+
The member to transfer ownership to.
1239+
1240+
You must own the server, or be a privileged user to provide this.
1241+
1242+
The target user must be not a bot.
12361243
12371244
Raises
12381245
------
@@ -1257,13 +1264,15 @@ async def edit(
12571264
:class:`Forbidden`
12581265
Possible values for :attr:`~HTTPException.type`:
12591266
1260-
+-----------------------+---------------------------------------------------------------------------------------+
1261-
| Value | Reason |
1262-
+-----------------------+---------------------------------------------------------------------------------------+
1263-
| ``MissingPermission`` | You do not have the proper permissions to edit server details. |
1264-
+-----------------------+---------------------------------------------------------------------------------------+
1265-
| ``NotPrivileged`` | You provided ``discoverable`` or ``flags`` parameters and you wasn't privileged user. |
1266-
+-----------------------+---------------------------------------------------------------------------------------+
1267+
+-----------------------+-------------------------------------------------------------------------------------------+
1268+
| Value | Reason |
1269+
+-----------------------+-------------------------------------------------------------------------------------------+
1270+
| ``MissingPermission`` | You do not have the proper permissions to edit server details. |
1271+
+-----------------------+-------------------------------------------------------------------------------------------+
1272+
| ``NotOwner`` | You provided ``owner`` parameter and you didn't own the server or wasn't privileged user. |
1273+
+-----------------------+-------------------------------------------------------------------------------------------+
1274+
| ``NotPrivileged`` | You provided ``discoverable`` or ``flags`` parameters and you wasn't privileged user. |
1275+
+-----------------------+-------------------------------------------------------------------------------------------+
12671276
:class:`NotFound`
12681277
Possible values for :attr:`~HTTPException.type`:
12691278
@@ -1300,6 +1309,7 @@ async def edit(
13001309
flags=flags,
13011310
discoverable=discoverable,
13021311
analytics=analytics,
1312+
owner=owner,
13031313
)
13041314

13051315
async def fetch(

0 commit comments

Comments
 (0)