from django.shortcuts import render
from .models import PublicKey
from .form import AddPublicKeyForm
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
import json

DEBUG = True


@login_required(login_url='/account/login/')
def add_public_key(request):
    if request.method == 'POST':
        add_public_key_form = AddPublicKeyForm(data=request.POST)
        if add_public_key_form.is_valid():
            # 新建公钥表
            data = add_public_key_form.cleaned_data
            new_public_key = PublicKey()
            new_public_key.public_key = data['public_key']
            new_public_key.user = request.user
            # 保存
            new_public_key.save()
            return HttpResponse(status=200)
        else:
            return HttpResponse(status=400)
    # 用于测试
    elif request.method == 'GET':
        if DEBUG:
            return render(request, 'add_public_key.html')
    else:
        response = ['illegal method, please use post']
        return HttpResponse(json.dumps(response))


@login_required(login_url='/account/login/')
def get_public_key(request):
    if request.method == 'POST':
        data = request.POST
        # 筛选出此用户的公钥
        public_keys = PublicKey.objects.filter(user__username=data['username'])
        # 将筛选得到的此用户的公钥放入列表中并用json返回
        response = []
        for public_key in public_keys:
            response.append(public_key.public_key)
        return HttpResponse(json.dumps(response),status=200)
    # 用于测试
    elif request.method == 'GET':
        if DEBUG:
            return render(request, 'get_public_key.html')
    else:
        return HttpResponse(status=400)
