1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-02-07 17:58:24 +00:00
thatmattlove-hyperglass/hyperglass/external/webhooks.py
2020-04-18 23:18:50 -07:00

24 lines
658 B
Python

"""Convenience functions for webhooks."""
# Project
from hyperglass.exceptions import HyperglassError
from hyperglass.external._base import BaseExternal
from hyperglass.external.slack import SlackHook
PROVIDER_MAP = {
"slack": SlackHook,
}
class Webhook(BaseExternal):
"""Get webhook for provider name."""
def __new__(cls, provider):
"""Return instance for correct provider handler."""
try:
provider_class = PROVIDER_MAP[provider]
return provider_class()
except KeyError:
raise HyperglassError(
f"{provider} is not yet supported as a webhook target."
)