def post(self, request, usage_key_str): """ Replace the block's OLX. This API is only meant for use by developers or API client applications. Very little validation is done. """ key = LibraryUsageLocatorV2.from_string(usage_key_str) api.require_permission_for_library_key(key.lib_key, request.user, permissions.CAN_EDIT_THIS_CONTENT_LIBRARY) serializer = LibraryXBlockOlxSerializer(data=request.data) serializer.is_valid(raise_exception=True) new_olx_str = serializer.validated_data["olx"] try: api.set_library_block_olx(key, new_olx_str) except ValueError as err: raise ValidationError(detail=str(err)) return Response(LibraryXBlockOlxSerializer({"olx": new_olx_str}).data)
def get(self, request, usage_key_str): """ Get the block's OLX """ key = LibraryUsageLocatorV2.from_string(usage_key_str) api.require_permission_for_library_key(key.lib_key, request.user, permissions.CAN_VIEW_THIS_CONTENT_LIBRARY) xml_str = api.get_library_block_olx(key) return Response(LibraryXBlockOlxSerializer({"olx": xml_str}).data)