pincer.middleware.guild_role_delete   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 21
dl 0
loc 54
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A guild_role_delete_middleware() 0 31 2
A export() 0 2 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 role was deleted."""
5
6
from __future__ import annotations
7
8
from typing import TYPE_CHECKING
9
10
from ..objects.events.guild import GuildRoleDeleteEvent
11
from ..utils import Coro
12
13
if TYPE_CHECKING:
14
    from ..client import Client
15
    from ..core.gateway import Gateway
16
    from ..core.gateway import GatewayDispatch
17
18
19
async def guild_role_delete_middleware(
20
    self: Client, gateway: Gateway, payload: GatewayDispatch
0 ignored issues
show
Unused Code introduced by
The argument gateway seems to be unused.
Loading history...
Coding Style introduced by
Wrong hanging indentation before block (add 4 spaces).
Loading history...
21
):
22
    """|coro|
23
24
    Middleware for the ``on_guild_role_delete`` event.
25
26
    Parameters
27
    ----------
28
    payload : :class:`~pincer.core.gateway.GatewayDispatch`
29
        The data received from the guild role delete event.
30
    gateway : :class:`~pincer.core.gateway.Gateway`
31
        The gateway for the current shard.
32
33
    Returns
34
    -------
35
    Tuple[:class:`str`, :class:`~pincer.objects.events.guild.GuildRoleDeleteEvent`]
36
        ``on_guild_role_delete`` and a ``GuildRoleDeleteEvent``
37
    """  # noqa: E501
38
39
    event = GuildRoleDeleteEvent.from_dict(payload.data)
40
    guild = self.guilds.get(event.guild_id)
41
42
    if guild:
43
        guild.roles = [
44
            role
45
            for role in self.guilds[event.guild_id].roles
46
            if role.id != event.role_id
47
        ]
48
49
    return ("on_guild_role_delete", event)
50
51
52
def export() -> Coro:
0 ignored issues
show
introduced by
Missing function or method docstring
Loading history...
53
    return guild_role_delete_middleware
54