コード例 #1
0
    def sparql_endpoint(self, id):
        # using default functionality
        template = self.read(id)

        #check if metadada info exists and add it otherwise
        context = {
            'model': model,
            'session': model.Session,
            'user': c.user or c.author
        }
        package_info = get_action('package_show')(context, {'id': c.pkg.id})

        c.resultformats = RESULT_FORMATS
        c.selectedformat = 'html'

        if 'runquery' in request.params:
            query_results, content_type, errors, error_message = execute_query(
                request.params['query'], request.params['resultformat'],
                self.packageendpoint, request.url.replace('/sparql', ''))
            c.query = request.params['query']
            c.selectedformat = request.params['resultformat']

            if errors:
                c.error_message = error_message
            else:
                if content_type:
                    response.headers['Content-type'] = content_type
                    return query_results
                else:
                    c.queryresults = query_results

        return render('package/sparql.html')
コード例 #2
0
    def sparql_endpoint(self, id):
        # using default functionality
        template = self.read(id)

        #check if metadada info exists and add it otherwise
        context = {'model': model, 'session': model.Session, 'user': c.user or c.author}
        package_info = get_action('package_show')(context, {'id': c.pkg.id})


        c.resultformats = RESULT_FORMATS
        c.selectedformat = 'html'

        if 'runquery' in request.params:
            query_results, content_type, errors, error_message = execute_query(request.params['query'], request.params['resultformat'], self.packageendpoint, request.url.replace('/sparql', ''))
            c.query = request.params['query']
            c.selectedformat = request.params['resultformat']

            if errors:
                c.error_message = error_message
            else:
                if content_type:
                    response.headers['Content-type'] = content_type
                    return query_results
                else:
                    c.queryresults = query_results

        return render('package/sparql.html')
コード例 #3
0
ファイル: api.py プロジェクト: jonlazaro/ckanext-sparql
    def sparql_query(self, package_id=None):
        request = self._get_request_data()

        if not 'query' in request:
            abort(400, 'Please provide a suitable query parameter')

        if not 'format' in request:
            format = 'json'
        elif request['format'] in RESULT_FORMATS:
            format = request['format']
        else:
            abort(400, 'Please provide a suitable format parameter')

        if package_id:
            endpoint = model.Session.query(SparqlEndpoint).filter(SparqlEndpoint.packages.any(Package.name == package_id)).first()
            if not endpoint:
                abort(404, 'No endpoint defined for provided package')
        else:
            endpoint = model.Session.query(SparqlEndpoint).filter_by(isglobal=True).first()
            if not endpoint:
                abort(404, 'No global endpoint defined.')

        query_results, content_type, errors, error_message = execute_query(request['query'], format, endpoint)

        if errors:
            abort(400, error_message)
        else:
            return self._finish_ok(response_data=query_results, content_type=content_type)
コード例 #4
0
ファイル: api.py プロジェクト: Noor-ul-amin/ckanext-sparql
    def sparql_query(self, package_id=None):
        request = self._get_request_data()

        if not 'query' in request:
            abort(400, 'Please provide a suitable query parameter')

        if not 'format' in request:
            format = 'json'
        elif request['format'] in RESULT_FORMATS:
            format = request['format']
        else:
            abort(400, 'Please provide a suitable format parameter')

        if package_id:
            endpoint = model.Session.query(SparqlEndpoint).filter(
                SparqlEndpoint.packages.any(
                    Package.name == package_id)).first()
            if not endpoint:
                abort(404, 'No endpoint defined for provided package')
        else:
            endpoint = model.Session.query(SparqlEndpoint).filter_by(
                isglobal=True).first()
            if not endpoint:
                abort(404, 'No global endpoint defined.')

        query_results, content_type, errors, error_message = execute_query(
            request['query'], format, endpoint)

        if errors:
            abort(400, error_message)
        else:
            return self._finish_ok(response_data=query_results,
                                   content_type=content_type)
コード例 #5
0
    def sparql_endpoint(self):
        c.resultformats = RESULT_FORMATS
        c.selectedformat = 'html'

        if 'runquery' in request.params:
            query_results, content_type, errors, error_message = execute_query(request.params['query'], request.params['resultformat'], self.mainendpoint)
            c.query = request.params['query']
            c.selectedformat = request.params['resultformat']

            if errors:
                c.error_message = error_message
            else:
                if content_type:
                    response.headers['Content-type'] = content_type
                    return query_results
                else:
                    c.queryresults = query_results

        return render('sparql/sparq_gui.html')
コード例 #6
0
    def sparql_endpoint(self):
        c.resultformats = RESULT_FORMATS
        c.selectedformat = 'html'

        if 'runquery' in request.params:
            query_results, content_type, errors, error_message = execute_query(
                request.params['query'], request.params['resultformat'],
                self.mainendpoint)
            c.query = request.params['query']
            c.selectedformat = request.params['resultformat']

            if errors:
                c.error_message = error_message
            else:
                if content_type:
                    response.headers['Content-type'] = content_type
                    return query_results
                else:
                    c.queryresults = query_results

        return render('sparql/sparq_gui.html')