From c0e1b2cab9ad801be0a4020f01bc29ae9dd98f46 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 14 May 2018 14:01:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=B0=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=20?= =?UTF-8?q?=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- access/management/commands/set_tokens.py | 2 -- progress/views.py | 44 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/access/management/commands/set_tokens.py b/access/management/commands/set_tokens.py index d79824a..d7cda88 100644 --- a/access/management/commands/set_tokens.py +++ b/access/management/commands/set_tokens.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 diff --git a/progress/views.py b/progress/views.py index 95dc50f..e4ade70 100644 --- a/progress/views.py +++ b/progress/views.py @@ -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)