diff --git a/server/vbv_lernwelt/course/consts.py b/server/vbv_lernwelt/course/consts.py index 831d5987..a0dd7b27 100644 --- a/server/vbv_lernwelt/course/consts.py +++ b/server/vbv_lernwelt/course/consts.py @@ -1,3 +1,4 @@ +# Course IDs COURSE_TEST_ID = -1 COURSE_UK = -3 COURSE_VERSICHERUNGSVERMITTLERIN_ID = -4 diff --git a/server/vbv_lernwelt/course/creators/test_utils.py b/server/vbv_lernwelt/course/creators/test_utils.py index ac99904b..f9d65487 100644 --- a/server/vbv_lernwelt/course/creators/test_utils.py +++ b/server/vbv_lernwelt/course/creators/test_utils.py @@ -88,9 +88,10 @@ def create_user(username: str) -> User: def create_course_session( - course: Course, title: str, generation: str = "2023" + course: Course, title: str, generation: str = "2023", _id=None ) -> CourseSession: return CourseSession.objects.create( + id=_id, course=course, title=title, import_id=title, diff --git a/server/vbv_lernwelt/shop/tests/test_datatrans_webhook.py b/server/vbv_lernwelt/shop/tests/test_datatrans_webhook.py index 5850ea11..c18f7e6c 100644 --- a/server/vbv_lernwelt/shop/tests/test_datatrans_webhook.py +++ b/server/vbv_lernwelt/shop/tests/test_datatrans_webhook.py @@ -35,7 +35,13 @@ class DatatransWebhookTestCase(APITestCase): _id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, ) - create_course_session(course=course, title="Versicherungsvermittler/-in DE") + create_course_session( + course=course, + title="Versicherungsvermittler/-in DE", + # MUST be 1 -> this is the correct + # VV DE course session ID in production + _id=1, + ) self.user = User.objects.create_user( username="testuser", @@ -145,14 +151,21 @@ class DatatransWebhookTestCase(APITestCase): CourseSessionUser.objects.count(), ) + csu = CourseSessionUser.objects.first() + self.assertEqual( self.user, - CourseSessionUser.objects.first().user, + csu.user, + ) + + self.assertEqual( + 1, + csu.course_session.id, ) self.assertEqual( COURSE_VERSICHERUNGSVERMITTLERIN_ID, - CourseSessionUser.objects.first().course_session.course.id, + csu.course_session.course.id, ) self.assertEqual( diff --git a/server/vbv_lernwelt/shop/views.py b/server/vbv_lernwelt/shop/views.py index 3f5e4a97..06672826 100644 --- a/server/vbv_lernwelt/shop/views.py +++ b/server/vbv_lernwelt/shop/views.py @@ -8,11 +8,6 @@ from rest_framework.response import Response from sentry_sdk import capture_exception from vbv_lernwelt.core.models import Country, User -from vbv_lernwelt.course.consts import ( - COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID, - COURSE_VERSICHERUNGSVERMITTLERIN_ID, - COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID, -) from vbv_lernwelt.course.models import CourseSession, CourseSessionUser from vbv_lernwelt.notify.email.email_services import EmailTemplate, send_email from vbv_lernwelt.shop.const import ( @@ -37,10 +32,11 @@ from vbv_lernwelt.shop.services import ( logger = structlog.get_logger(__name__) -PRODUCT_SKU_TO_COURSE = { - VV_DE_PRODUCT_SKU: COURSE_VERSICHERUNGSVERMITTLERIN_ID, - VV_FR_PRODUCT_SKU: COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID, - VV_IT_PRODUCT_SKU: COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID, +PRODUCT_SKU_TO_COURSE_SESSION_ID = { + # CourseSession IDs PROD/STAGING + VV_DE_PRODUCT_SKU: 1, # vv-de + VV_FR_PRODUCT_SKU: 2, # vv-fr + VV_IT_PRODUCT_SKU: 3, # vv-it } @@ -229,9 +225,9 @@ def create_vv_course_session_user(checkout_info: CheckoutInformation): _, created = CourseSessionUser.objects.get_or_create( user=checkout_info.user, role=CourseSessionUser.Role.MEMBER, - course_session=CourseSession.objects.filter( - course_id=PRODUCT_SKU_TO_COURSE[checkout_info.product_sku] - ).first(), + course_session=CourseSession.objects.get( + id=PRODUCT_SKU_TO_COURSE_SESSION_ID[checkout_info.product_sku] + ), ) if created: