# -*- coding: utf-8 -*-
from django.shortcuts import render, HttpResponseRedirect
from django.http import HttpRequest, HttpResponse
from django.contrib.auth import authenticate, login, logout
from django.template.exceptions import TemplateDoesNotExist, TemplateSyntaxError


def index(request: HttpRequest) -> HttpResponse:
    """ тест индексной страницы

    :param
    :return response: исходящий http-ответ
    """
    # try:
    #     return render(request, "index.jinja", {})
    # except (TemplateDoesNotExist, TemplateSyntaxError) as e:
    #     # Обработка ошибки отсутствия шаблона
    #     return HttpResponse(f"Не нашли шаблон или в нем ошибка \"{e}\".", status=424)
    return render(request, template_name="index.jinja", context={})


def my_logout(request: HttpRequest) -> HttpResponseRedirect:
    """ Разлогируем пользователя

    :param
    :return response: исходящий http-ответ
    """
    logout(request)
    return HttpResponseRedirect(redirect_to='/')


def my_login(request: HttpRequest) -> HttpResponseRedirect:
    """ Логиним пользователя

    :param
    :return response: исходящий http-ответ
    """
    try:
        if request.method == 'POST':
            user = authenticate(request,
                                username=request.POST['username'],
                                password=request.POST['password'])
            if user is None:
                return HttpResponseRedirect(redirect_to='/not-auth')
            else:
                login(request, user)
        return HttpResponseRedirect('/')
    except KeyError:
        return HttpResponseRedirect('/')


def not_auth(request: HttpRequest) -> HttpResponse:
    """ Страница для неавторизованных пользователей

    :param
    :return response: исходящий http-ответ
    """
    to_template = {"META_REFRESH": "15; url=/"}
    return render(request, template_name="not_auth.jinja", context=to_template, status=401)
