Добавленна модель токенов

remotes/origin/dev
Andrey 8 years ago
parent 46c1b7741d
commit c0e1b2cab9
  1. 2
      access/management/commands/set_tokens.py
  2. 44
      progress/views.py

@ -1,6 +1,4 @@
import csv
import jwt
from django.conf import settings
from django.core.management.base import BaseCommand
from django.db import IntegrityError

@ -596,6 +596,50 @@ def get_teachers_pay(request):
class ProgressToken(APIView):
renderer_classes = (JSONRenderer,)
@staticmethod
def post(request):
email = request.JSON.get('email', None)
course_slug = request.JSON.get('course_slug', None)
period_days = request.JSON.get('period_days', None)
if email is None:
return Response('Параметр email не передан', status=400)
if course_slug is None:
return Response('Параметр course_slug не передан', status=400)
if period_days is None:
return Response('Параметр period_days не передан', status=400)
try:
period_days = int(period_days)
except ValueError:
return Response('Параметр period_days должен быть целочисленным', status=400)
try:
course_token = Course.objects.get(slug=course_slug).token
except Course.DoesNotExist:
return Response("Курс с заданным слагом не найден", status=404)
try:
token = OpenToken.objects.create(
email=email.lower(),
course_token=course_token,
period_days=period_days,
)
course_title = CourseParamsApi(token.course_token).get_slug_and_title()['title']
url = "https://go.skillbox.ru/api/v1/progress/progress_token/?token=%s" % str(token.token)
msg = EmailMessage(
subject="Активация доступа",
body="""Вам выдан доступ к курсу "%s" на
срок до %s дней для подтверждения активации
перейдите по ссылке %s""" % (course_title, token.period_days, url),
)
msg.send()
return Response("Всё огонь", status=200)
except IntegrityError:
pass
@staticmethod
def get(request):
token = request.GET.get('token', None)

Loading…
Cancel
Save