|
|
|
|
@ -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) |
|
|
|
|
|