Exemplo n.º 1
0
    def post(self, request):
        """ POST request. Try to save the configuration.

        Args:
            request:

        Returns:

        """
        form = self.form_class(request.POST)

        if form.is_valid():
            # Call the API
            content = request.POST['content']
            page = self.api.get()

            markdown_content = markdown(content)
            if markdown_content != stripjs(markdown_content):
                return self.get(request, current_content=content, error_id=constants.MARKDOWN_UNSAFE)

            try:
                parse_html(markdown_content, 'div')
            except HTMLError:
                return self.get(request, current_content=content, error_id=constants.MARKDOWN_GENERATION_FAILED)

            if page is None:
                page = WebPage(self.web_page_type, content)
            else:
                page.content = content

            self.api.upsert(page)
            messages.add_message(request, messages.INFO, 'Information saved with success.')

            return redirect(reverse(self.post_redirect))
Exemplo n.º 2
0
def post(request):
    """ Create the privacy policy

    Parameters:

        {
            "content": "new_content"
        }

    Returns:

        - code: 200
          content: Privacy policy page
        - code: 400
          content: Validation error
    """
    try:
        # Get parameters
        privacy_policy_content = request.DATA['content']
        privacy_policy_page = privacy_policy_api.get()

        if privacy_policy_page is None:
            privacy_policy_page = WebPage(WEB_PAGE_TYPES["privacy_policy"],
                                          privacy_policy_content)
        else:
            privacy_policy_page.content = privacy_policy_content

        try:
            privacy_policy_page = privacy_policy_api.upsert(
                privacy_policy_page)

            # Serialize the request
            serializer = WebPageSerializer(privacy_policy_page.content)

            if serializer.is_valid():
                return Response(serializer.data, status=status.HTTP_200_OK)
            else:
                content = {'message': 'Serialization failed'}
                return Response(content, status=status.HTTP_400_BAD_REQUEST)

        except Exception as api_exception:
            content = {'message': api_exception.message}
            return Response(content, status=status.HTTP_400_BAD_REQUEST)

    except Exception as e:
        content = {'message': 'Expected parameters not provided.'}
        logger.exception(e.message)
        return Response(content, status=status.HTTP_400_BAD_REQUEST)