# Mattermost Bot.
#  Copyright (c) 2016-2020 by Someone <someone@somenet.org> (aka. Jan Vales <jan@jvales.net>)
#  published under MIT-License


class AbstractWSHandler():
    NAME = None
    bot = None


    def __init__(self):
        pass

    # should be overridden by the user
    def on_register_ws_evtype(self, evtype):
        pass

    # can/should be overridden by the user
    def on_shutdown(self):
        """Consider to override. Handles the shutdown-procedure."""
        return

    # should be overridden by the user
    def on_WS_EVENT(self, data):
        return False

    # should be overridden by the user
    # manual command authentication needed!
    def on_POST_interactive(self, request, data):
        return


    def _on_register_ws_evtype(self, bot, evtype):
        self.bot = bot
        self.on_register_ws_evtype(evtype)


    def _on_shutdown(self):
        self.on_shutdown()
