From 87e375d6271290d147c3d08fb14d1c8b2427266d Mon Sep 17 00:00:00 2001 From: stvn Date: Wed, 7 Apr 2021 10:14:23 -0700 Subject: [PATCH] feat: Implement update helper for discussions API --- openedx/core/djangoapps/discussions/views.py | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/discussions/views.py b/openedx/core/djangoapps/discussions/views.py index cc49238b1c..9fee97da54 100644 --- a/openedx/core/djangoapps/discussions/views.py +++ b/openedx/core/djangoapps/discussions/views.py @@ -104,7 +104,29 @@ class DiscussionsConfigurationView(APIView): """ Update and save an existing instance """ - raise NotImplementedError + keys = [ + 'enabled', + 'plugin_configuration', + 'provider_type', + ] + for key in keys: + value = validated_data.get(key) + if value is not None: + setattr(instance, key, value) + lti_configuration_data = validated_data.get('lti_configuration') + if lti_configuration_data: + lti_key = lti_configuration_data.get('lti_1p1_client_key') + lti_secret = lti_configuration_data.get('lti_1p1_client_secret') + lti_url = lti_configuration_data.get('lti_1p1_launch_url') + lti_configuration = instance.lti_configuration or LtiConfiguration() + lti_configuration.config_store = LtiConfiguration.CONFIG_ON_DB + lti_configuration.lti_1p1_client_key = lti_key + lti_configuration.lti_1p1_client_secret = lti_secret + lti_configuration.lti_1p1_launch_url = lti_url + lti_configuration.save() + instance.lti_configuration = lti_configuration + instance.save() + return instance # pylint: disable=redefined-builtin def get(self, request, course_key_string, **_kwargs) -> Response: