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


import mattermost


class AbstractPublicWS():
    URL = None
    TRIGGER = None
    CONFIG = {"display_name": "somebot-command", "auto_complete": True}

    bot = None


    def __init__(self, team_id):
        self.TEAM_ID = team_id

    def __str__(self):
        return str(self.__class__)

    def __repr__(self):
        return self.__str__()


    # can/should be overridden by the user
    def on_register_public(self):
        """Consider to override. Handles the post-command-registration logic at bot startup."""
        return

    # should be overridden by the user
    def on_public_GET(self, request, data):
        """Override. Handles the post-command logic."""
        return

    # should be overridden by the user
    def on_public_POST(self, request, data):
        """Override. Handles the post-command logic."""
        return


    def _on_register_public(self, bot):
        self.bot = bot
        #self.URL = ("http://"+self.bot.local_websrv_hostname+":"+str(self.bot.local_websrv_port)+"/").strip("/")+"/"+self.TEAM_ID+"/"+self.TRIGGER
        self.URL = ("http://"+self.bot.local_websrv_hostname+":"+str(self.bot.local_websrv_port)+"/").strip("/")+"/"+self.TRIGGER
        self.on_register_public()


    def _on_shutdown(self):
        self.on_shutdown()


    def _on_public_GET(self, request, data):
            return self.on_public_GET(request, data)

    def _on_public_POST(self, request, data):
            return self.on_public_POST(request, data)
