def render(self, context):
        try:
            request = template.Variable(self.req).resolve(context)
            data = ""
            method = "GET"
            if self.method != "GET":
                data = str(template.Variable(self.data).resolve(context))
                method = str(template.Variable(self.method).resolve(context))

            args = [
                str(template.Variable(arg).resolve(context))
                for arg in self.args
            ]
            url = ''.join(args)

            if settings.USE_ESI and method == "GET" and\
                    ('use_esi', False) not in self.args:
                return "<esi:include src=\"/api/v1%s\" />" % url

            # separate query params from url
            (scheme, netloc, path, params, query, fragment) = urlparse(url)
            query_dict = QueryDict(query)
            url = urlunparse((scheme, netloc, path, params, '', fragment))

            status_code, container = rest_api(url,
                                              request=request,
                                              query=query_dict,
                                              data=data,
                                              method=method)
            if status_code >= 300:
                return ''
            else:
                return container[0]
        except template.VariableDoesNotExist:
            return ''
Exemplo n.º 2
0
    def render(self, context):
        try:
            request = template.Variable(self.req).resolve(context)
            data = ""
            method = "GET"
            if self.method != "GET":
                data = str(template.Variable(self.data).resolve(context))
                method = str(template.Variable(self.method).resolve(context))

            args = [str(template.Variable(arg).resolve(context)) for arg in self.args]
            url = ''.join(args)

            if settings.USE_ESI and method == "GET" and\
                    ('use_esi', False) not in self.args:
                return "<esi:include src=\"/api/v1%s\" />" % url

            # separate query params from url
            (scheme, netloc, path, params, query, fragment) = urlparse(url)
            query_dict = QueryDict(query)
            url = urlunparse((scheme, netloc, path, params, '', fragment))

            status_code, container = rest_api(url, request=request,
                query=query_dict, data=data, method=method)
            if status_code >= 300:
                return ''
            else:
                return container[0]
        except template.VariableDoesNotExist:
            return ''
Exemplo n.º 3
0
    def render(self, context):
        try:
            request = template.Variable(self.req).resolve(context)
            args = [str(template.Variable(arg).resolve(context)) for arg in self.args]
            url = ''.join(args)

            # separate query params from url
            (scheme, netloc, path, params, query, fragment) = urlparse(url)
            query_dict = QueryDict(query)
            url = urlunparse((scheme, netloc, path, params, '', fragment))

            status_code, container = rest_api(url, request=request, query=query_dict)
            if status_code >= 300:
                return ''
            else:
                return container[0]
        except template.VariableDoesNotExist:
            return ''