Completed
Pull Request — master (#351)
by Koen
01:20
created

AtramhasisVoid   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
dl 0
loc 17
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 6 3
A rdf_void_turtle() 0 7 1
1
from pyramid.response import Response
2
from pyramid.view import view_defaults, view_config
3
from skosprovider_rdf import utils
4
5
from atramhasis.errors import (
6
    SkosRegistryNotFoundException,
7
    ConceptSchemeNotFoundException,
8
    ConceptNotFoundException
9
)
10
from atramhasis.audit import audit
11
12
from atramhasis.rdf import void_dumper
13
14
@view_defaults()
15
class AtramhasisVoid(object):
16
17
    def __init__(self, request):
18
        self.request = request
19
        if hasattr(request, 'skos_registry') and request.skos_registry is not None:
20
            self.skos_registry = self.request.skos_registry
21
        else:
22
            raise SkosRegistryNotFoundException()   # pragma: no cover
23
24
    @view_config(route_name='atramhasis.rdf_void_turtle_ext')
25
    def rdf_void_turtle(self):
26
        graph = void_dumper(self.request, self.skos_registry)
27
        response = Response(content_type='text/turtle')
28
        response.body = graph.serialize(format='turtle')
29
        response.content_disposition = 'attachment; filename="void.ttl"'
30
        return response
31
32
33
@view_defaults()
34
class AtramhasisRDF(object):
35
36
    def __init__(self, request):
37
        self.request = request
38
        self.scheme_id = self.request.matchdict['scheme_id']
39
        if hasattr(request, 'skos_registry') and request.skos_registry is not None:
40
            self.skos_registry = self.request.skos_registry
41
        else:
42
            raise SkosRegistryNotFoundException()   # pragma: no cover
43
        self.provider = self.skos_registry.get_provider(self.scheme_id)
44
        if not self.provider:
45
            raise ConceptSchemeNotFoundException(self.scheme_id)   # pragma: no cover
46
        if 'c_id' in self.request.matchdict.keys():
47
            self.c_id = self.request.matchdict['c_id']
48
            if not self.c_id.isdigit() or not self.provider.get_by_id(int(self.c_id)):
49
                raise ConceptNotFoundException(self.c_id)
50
51
    @audit
52
    @view_config(route_name='atramhasis.rdf_full_export')
53
    @view_config(route_name='atramhasis.rdf_full_export_ext')
54
    def rdf_full_export(self):
55
        graph = utils.rdf_dumper(self.provider)
56
        response = Response(content_type='application/rdf+xml')
57
        response.body = graph.serialize(format='xml')
58
        response.content_disposition = 'attachment; filename="%s-full.rdf"' % (str(self.scheme_id),)
59
        return response
60
61
    @audit
62
    @view_config(route_name='atramhasis.rdf_full_export_turtle')
63
    @view_config(route_name='atramhasis.rdf_full_export_turtle_x')
64
    @view_config(route_name='atramhasis.rdf_full_export_turtle_ext')
65
    def rdf_full_export_turtle(self):
66
        graph = utils.rdf_dumper(self.provider)
67
        response = Response(content_type='text/turtle')
68
        response.body = graph.serialize(format='turtle')
69
        response.content_disposition = 'attachment; filename="%s-full.ttl"' % (str(self.scheme_id),)
70
        return response
71
72
    @audit
73
    @view_config(route_name='atramhasis.rdf_conceptscheme_export')
74
    @view_config(route_name='atramhasis.rdf_conceptscheme_export_ext')
75
    def rdf_conceptscheme_export(self):
76
        graph = utils.rdf_conceptscheme_dumper(self.provider)
77
        response = Response(content_type='application/rdf+xml')
78
        response.body = graph.serialize(format='xml')
79
        response.content_disposition = 'attachment; filename="%s.rdf"' % (str(self.scheme_id),)
80
        return response
81
82
    @view_config(route_name='atramhasis.rdf_conceptscheme_export_turtle')
83
    @view_config(route_name='atramhasis.rdf_conceptscheme_export_turtle_x')
84
    @view_config(route_name='atramhasis.rdf_conceptscheme_export_turtle_ext')
85
    def rdf_conceptscheme_export_turtle(self):
86
        graph = utils.rdf_conceptscheme_dumper(self.provider)
87
        response = Response(content_type='text/turtle')
88
        response.body = graph.serialize(format='turtle')
89
        response.content_disposition = 'attachment; filename="%s.ttl"' % (str(self.scheme_id),)
90
        return response
91
92
    @audit
93
    @view_config(route_name='atramhasis.rdf_individual_export')
94
    @view_config(route_name='atramhasis.rdf_individual_export_ext')
95
    def rdf_individual_export(self):
96
        graph = utils.rdf_c_dumper(self.provider, self.c_id)
97
        response = Response(content_type='application/rdf+xml')
98
        response.body = graph.serialize(format='xml')
99
        response.content_disposition = 'attachment; filename="%s.rdf"' % (str(self.c_id),)
100
        return response
101
102
    @audit
103
    @view_config(route_name='atramhasis.rdf_individual_export_turtle')
104
    @view_config(route_name='atramhasis.rdf_individual_export_turtle_x')
105
    @view_config(route_name='atramhasis.rdf_individual_export_turtle_ext')
106
    def rdf_individual_export_turtle(self):
107
        graph = utils.rdf_c_dumper(self.provider, self.c_id)
108
        response = Response(content_type='text/turtle')
109
        response.body = graph.serialize(format='turtle')
110
        response.content_disposition = 'attachment; filename="%s.ttl"' % (str(self.c_id),)
111
        return response
112