Skip to content

Commit 3fc7bee

Browse files
authored
refactor: update attributes of current class instance when editing the object it represents (#635)
* refactor: modify self when editing its object * refactor: modify class instance when editing it and fix me being naive * fix!: typo
1 parent 4dcd2e1 commit 3fc7bee

File tree

5 files changed

+31
-6
lines changed

5 files changed

+31
-6
lines changed

interactions/api/models/channel.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,12 @@ async def modify(
375375
reason=reason,
376376
payload=payload,
377377
)
378-
return Channel(**res, _client=self._client)
378+
ch = Channel(**res, _client=self._client)
379+
380+
for attr in self.__slots__:
381+
setattr(self, attr, getattr(ch, attr))
382+
383+
return ch
379384

380385
async def set_name(
381386
self,

interactions/api/models/guild.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,12 @@ async def modify(
10901090
payload=payload,
10911091
reason=reason,
10921092
)
1093-
return Guild(**res, _client=self._client)
1093+
guild = Guild(**res, _client=self._client)
1094+
1095+
for attr in self.__slots__:
1096+
setattr(self, attr, getattr(guild, attr))
1097+
1098+
return guild
10941099

10951100
async def set_name(
10961101
self,
@@ -1548,7 +1553,7 @@ async def get_emoji(
15481553
res = await self._client.get_guild_emoji(guild_id=int(self.id), emoji_id=emoji_id)
15491554
return Emoji(**res, _client=self._client)
15501555

1551-
async def get_all_emojis(self) -> List[Emoji]:
1556+
async def get_all_emoji(self) -> List[Emoji]:
15521557
"""
15531558
Gets all emojis of a guild.
15541559

interactions/api/models/member.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,12 @@ async def modify(
346346
payload=payload,
347347
reason=reason,
348348
)
349-
return Member(**res, _client=self._client)
349+
member = Member(**res, _client=self._client)
350+
351+
for attr in self.__slots__:
352+
setattr(self, attr, getattr(member, attr))
353+
354+
return member
350355

351356
async def add_to_thread(
352357
self,

interactions/api/models/message.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,12 @@ async def edit(
418418
payload=payload._json,
419419
)
420420

421-
return Message(**_dct) if not _dct.get("code") else payload
421+
msg = Message(**_dct) if not _dct.get("code") else payload
422+
423+
for attr in self.__slots__:
424+
setattr(self, attr, getattr(msg, attr))
425+
426+
return msg
422427

423428
async def reply(
424429
self,

interactions/api/models/role.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,12 @@ async def modify(
137137
payload=payload._json,
138138
reason=reason,
139139
)
140-
return Role(**res, _client=self._client)
140+
role = Role(**res, _client=self._client)
141+
142+
for attr in self.__slots__:
143+
setattr(self, attr, getattr(role, attr))
144+
145+
return role
141146

142147
async def modify_position(
143148
self,

0 commit comments

Comments
 (0)