skillbox/server/core/views.py

47 lines
1.5 KiB
Python

import requests
from django.conf import settings
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http.response import HttpResponse
from django.shortcuts import render
from django.views.decorators.csrf import ensure_csrf_cookie
from django.views.generic import TemplateView
from graphene_django.views import GraphQLView
from core.hep_client import HepClient
from core.models import AdminData
class PrivateGraphQLView(LoginRequiredMixin, GraphQLView):
pass
@ensure_csrf_cookie
def home(request):
if settings.SERVE_VIA_WEBPACK:
try:
res = requests.get('http://localhost:8080/{}'.format(request.get_full_path()))
headers = res.headers
content_type = headers.get('content-type', 'text/html')
return HttpResponse(res.text, content_type=content_type)
except Exception as e:
print('Can not connect to dev server at http://localhost:8080:', e)
return render(request, 'index.html', {})
class ConfirmationKeyDisplayView(TemplateView):
template_name = 'confirmation_key.html'
def get_context_data(self, *args, **kwargs):
email = self.request.GET.get('email', '')
hep_client = HepClient()
admin_token = AdminData.objects.get_admin_token()
hep_user = hep_client.customers_search(admin_token, email)
context = super().get_context_data(**kwargs)
context['confirmation_key'] = hep_user['confirmation']
context['hep_id'] = hep_user['id']
return context