Passed
Pull Request — main (#163)
by
unknown
01:39
created

pincer.middleware.guild_update   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 2
eloc 17
dl 0
loc 40
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A export() 0 2 1
A guild_update_middleware() 0 22 1
1
# Copyright Pincer 2021-Present
2
# Full MIT License can be found in `LICENSE` at the project root.
3
4
"""sent when a guild is updated"""
5
from typing import List
6
7
from ..core.dispatch import GatewayDispatch
8
from ..objects import Guild, Channel
9
from ..utils.conversion import construct_client_dict
10
11
12
async def guild_update_middleware(self, payload: GatewayDispatch):
13
    """
14
    Middleware for ``on_guild_update``,
15
        creates a object for the guild that is updated
16
17
    :param self:
18
        The current client.
19
20
    :param payload:
21
        The data received from the guild update event.
22
    """
23
    channel_list = payload.data.pop("channels", [])
24
25
    channels: List[Channel] = [
26
        Channel.from_dict(construct_client_dict(self, channel))
27
        for channel in channel_list
28
    ]
29
30
    return "on_guild_update", [
31
        Guild.from_dict(construct_client_dict(
32
            self,
33
            {"channels": channels, **payload.data}
34
        ))
35
    ]
36
37
38
def export():
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
39
    return guild_update_middleware
40