예제 #1
0
파일: crud.py 프로젝트: dieuska/atramhasis
    def add_concept(self):
        '''
        Add a new concept to a conceptscheme

        :raises atramhasis.errors.ValidationError: If the provided json can't be validated
        '''
        validated_json_concept = self._validate_concept(self._get_json_body(), self.provider.conceptscheme_id)
        cid = self.db.query(
            func.max(Thing.concept_id)
        ).filter_by(conceptscheme_id=self.provider.conceptscheme_id).first()[0]
        if not cid:
            cid = 0
        cid += 1
        if validated_json_concept['type'] == 'concept':
            concept = Concept()
        else:
            concept = Collection()
        concept.concept_id = cid
        concept.conceptscheme_id = self.provider.conceptscheme_id
        concept.uri = self.provider.uri_generator.generate(id=cid)
        map_concept(concept, validated_json_concept, self.request.db)
        self.db.add(concept)

        invalidate_scheme_cache(self.scheme_id)

        self.request.response.status = '201'
        self.request.response.location = self.request.route_path(
            'skosprovider.c', scheme_id=self.scheme_id, c_id=concept.concept_id)
        return from_thing(concept)
예제 #2
0
    def add_concept(self):
        """
        Add a new concept to a conceptscheme

        :raises atramhasis.errors.ValidationError: If the provided json can't be validated
        """
        validated_json_concept = self._validate_concept(self._get_json_body(), self.provider.conceptscheme_id)
        cid = self.skos_manager.get_next_cid(self.provider.conceptscheme_id)
        if not cid:
            cid = 0
        cid += 1
        if validated_json_concept["type"] == "concept":
            concept = Concept()
        else:
            concept = Collection()
        concept.concept_id = cid
        concept.conceptscheme_id = self.provider.conceptscheme_id
        concept.uri = self.provider.uri_generator.generate(id=concept.concept_id)
        map_concept(concept, validated_json_concept, self.skos_manager)
        concept = self.skos_manager.save(concept)

        invalidate_scheme_cache(self.scheme_id)

        self.request.response.status = "201"
        self.request.response.location = self.request.route_path(
            "skosprovider.c", scheme_id=self.scheme_id, c_id=concept.concept_id
        )
        return from_thing(concept)
예제 #3
0
    def add_concept(self):
        """
        Add a new concept to a conceptscheme

        :raises atramhasis.errors.ValidationError: If the provided json can't be validated
        """
        validated_json_concept = self._validate_concept(self._get_json_body(), self.provider.conceptscheme_id)
        cid = self.skos_manager.get_next_cid(self.provider.conceptscheme_id)
        if not cid:
            cid = 0
        cid += 1
        if validated_json_concept['type'] == 'concept':
            concept = Concept()
        else:
            concept = Collection()
        concept.concept_id = cid
        concept.conceptscheme_id = self.provider.conceptscheme_id
        concept.uri = self.provider.uri_generator.generate(id=concept.concept_id)
        map_concept(concept, validated_json_concept, self.skos_manager)
        concept = self.skos_manager.save(concept)

        invalidate_scheme_cache(self.scheme_id)

        self.request.response.status = '201'
        self.request.response.location = self.request.route_path(
            'skosprovider.c', scheme_id=self.scheme_id, c_id=concept.concept_id)
        return from_thing(concept)
예제 #4
0
파일: crud.py 프로젝트: JDeVos/atramhasis
    def add_concept(self):
        '''
        Add a new concept to a conceptscheme

        :raises atramhasis.errors.ValidationError: If the provided json can't be validated
        '''
        validated_json_concept = self._validate_concept(
            self._get_json_body(), self.provider.conceptscheme_id)
        cid = self.db.query(func.max(Thing.concept_id)).filter_by(
            conceptscheme_id=self.provider.conceptscheme_id).first()[0]
        if not cid:
            cid = 0
        cid += 1
        if validated_json_concept['type'] == 'concept':
            concept = Concept()
        else:
            concept = Collection()
        concept.concept_id = cid
        concept.conceptscheme_id = self.provider.conceptscheme_id
        concept.uri = self.provider.uri_generator.generate(id=cid)
        map_concept(concept, validated_json_concept, self.request.db)
        self.db.add(concept)
        self.db.flush()

        invalidate_scheme_cache(self.scheme_id)

        self.request.response.status = '201'
        self.request.response.location = self.request.route_path(
            'skosprovider.c',
            scheme_id=self.scheme_id,
            c_id=concept.concept_id)
        return from_thing(concept)
예제 #5
0
 def change_type(self, thing, concept_id, conceptscheme_id, new_type):
     self.delete_thing(thing)
     self.session.flush()
     thing = Concept() if new_type == 'concept' else Collection()
     thing.type = new_type
     thing.concept_id = concept_id
     thing.conceptscheme_id = conceptscheme_id
     self.save(thing)
     return thing
예제 #6
0
 def setUp(self):
     self.skos_manager = SkosManager(session_maker())
     self.concept = Concept()
     self.concept.concept_id = 1
     self.concept.conceptscheme_id = 1
     self.collection = Collection()
     self.collection.concept_id = 0
     self.collection.conceptscheme_id = 1
     self.conceptscheme = ConceptScheme()
     self.conceptscheme.id = 1
     member_concept_1 = Concept()
     member_concept_1.concept_id = 5
     member_concept_1.conceptscheme_id = 1
     member_concept_2 = Collection()
     member_concept_2.concept_id = 6
     member_concept_2.conceptscheme_id = 1
     self.collection.members.add(member_concept_1)
     self.collection.members.add(member_concept_2)
     self.concept.narrower_concepts.add(member_concept_1)
     self.concept.narrower_collections.add(member_concept_2)
예제 #7
0
 def setUp(self):
     self.skos_manager = SkosManager(session_maker())
     self.concept = Concept()
     self.concept.concept_id = 1
     self.concept.conceptscheme_id = 1
     self.collection = Collection()
     self.collection.concept_id = 0
     self.collection.conceptscheme_id = 1
     self.conceptscheme = ConceptScheme()
     self.conceptscheme.id = 1
     member_concept_1 = Concept()
     member_concept_1.concept_id = 5
     member_concept_1.conceptscheme_id = 1
     member_concept_2 = Collection()
     member_concept_2.concept_id = 6
     member_concept_2.conceptscheme_id = 1
     self.collection.members.add(member_concept_1)
     self.collection.members.add(member_concept_2)
     self.concept.narrower_concepts.add(member_concept_1)
     self.concept.narrower_collections.add(member_concept_2)
예제 #8
0
 def test_save(self):
     thing = Concept()
     thing.concept_id = 123
     thing.conceptscheme_id = 1
     thing = self.skos_manager.save(thing)
     self.assertIsNotNone(thing.id)
 def test_save(self):
     thing = Concept()
     thing.concept_id = 123
     thing.conceptscheme_id = 1
     thing = self.skos_manager.save(thing)
     self.assertIsNotNone(thing.id)