__author__ = 'hanl'

DEBUG = True

QUERY_LANGUAGES = {"poliqarp": "Poliqarp", "cosmas2": "Cosmas 2", "annis": "ANNIS",
                   "cql": "CQL"}

WTF_CSRF_ENABLED = True
SECRET_KEY = "nHim5JB-YqkX7sS55jayGBnga8WmqgpkzieGe8UhojE"
REMEMBER_COOKIE_NAME = "rememberMe"

# RECAPTCHA_PUBLIC_KEY = "YOUR PUBLIC KEY"  # https://www.google.com/recaptcha
# RECAPTCHA_PRIVATE_KEY = "YOUR PRIVATE KEY"  # https://www.google.com/recaptcha

# Oauth client data
OAUTH2_CLIENT_ID = "fCBbQkA3ZDBhMzc2Nw=="
OAUTH2_CLIENT_SECRET = "f58c361f7e8e07a05133322f6af6727440edcab7dbc02a49508c0168bd18c7ed"
OPENID_CONNECT_SCOPES = "openid profile"
API_SERVER = "http://10.0.10.13:7070/api/v0.1"

# suggest authentication based on the available schema
AUTH_PROVIDER = "providers.CustomProvider"
BABEL_DEFAULT_LOCALE = 'de'

LANGUAGES = {
    'en': 'English',
    'de': 'Deutsch'
}


class URIBuilder(object):
    def __init__(self, url=API_SERVER):
        self.base = url
        self.path = []

    def addPath(self, path=None):
        if path:
            self.path.append(path)
        return self

    def build(self):
        end = self.base
        for p in self.path:
            if end.endswith("/"):
                end += p
            else:
                end += "/" + p
        return end