Rework User.edit to have proper typing
This commit is contained in:
		| @@ -735,13 +735,7 @@ class HTTPClient: | |||||||
|  |  | ||||||
|         return self.request(r, json=payload, reason=reason) |         return self.request(r, json=payload, reason=reason) | ||||||
|  |  | ||||||
|     def edit_profile(self, username: Optional[str], avatar: Optional[bytes]) -> Response[user.User]: |     def edit_profile(self, payload: Dict[str, Any]) -> Response[user.User]: | ||||||
|         payload = {} |  | ||||||
|         if avatar is not None: |  | ||||||
|             payload['avatar'] = avatar |  | ||||||
|         if username is not None: |  | ||||||
|             payload['username'] = username |  | ||||||
|  |  | ||||||
|         return self.request(Route('PATCH', '/users/@me'), json=payload) |         return self.request(Route('PATCH', '/users/@me'), json=payload) | ||||||
|  |  | ||||||
|     def change_my_nickname( |     def change_my_nickname( | ||||||
|   | |||||||
| @@ -22,10 +22,10 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |||||||
| DEALINGS IN THE SOFTWARE. | DEALINGS IN THE SOFTWARE. | ||||||
| """ | """ | ||||||
|  |  | ||||||
| from typing import Optional, TYPE_CHECKING | from typing import Any, Dict, Optional, TYPE_CHECKING | ||||||
| import discord.abc | import discord.abc | ||||||
| from .flags import PublicUserFlags | from .flags import PublicUserFlags | ||||||
| from .utils import snowflake_time, _bytes_to_base64_data | from .utils import snowflake_time, _bytes_to_base64_data, MISSING | ||||||
| from .enums import DefaultAvatar | from .enums import DefaultAvatar | ||||||
| from .colour import Colour | from .colour import Colour | ||||||
| from .asset import Asset | from .asset import Asset | ||||||
| @@ -247,7 +247,7 @@ class ClientUser(BaseUser): | |||||||
|         self._flags = data.get('flags', 0) |         self._flags = data.get('flags', 0) | ||||||
|         self.mfa_enabled = data.get('mfa_enabled', False) |         self.mfa_enabled = data.get('mfa_enabled', False) | ||||||
|  |  | ||||||
|     async def edit(self, *, username: str = None, avatar:  Optional[bytes] = None) -> None: |     async def edit(self, *, username: str = MISSING, avatar:  bytes = MISSING) -> None: | ||||||
|         """|coro| |         """|coro| | ||||||
|  |  | ||||||
|         Edits the current profile of the client. |         Edits the current profile of the client. | ||||||
| @@ -276,11 +276,14 @@ class ClientUser(BaseUser): | |||||||
|         InvalidArgument |         InvalidArgument | ||||||
|             Wrong image format passed for ``avatar``. |             Wrong image format passed for ``avatar``. | ||||||
|         """ |         """ | ||||||
|  |         payload: Dict[str, Any] = {} | ||||||
|  |         if username is not MISSING: | ||||||
|  |             payload['username'] = username | ||||||
|  |  | ||||||
|         if avatar is not None: |         if avatar is not MISSING: | ||||||
|             avatar = _bytes_to_base64_data(avatar) |             payload['avatar'] = _bytes_to_base64_data(avatar) | ||||||
|  |  | ||||||
|         data = await self._state.http.edit_profile(username=username, avatar=avatar) |         data = await self._state.http.edit_profile(payload) | ||||||
|         self._update(data) |         self._update(data) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user