def add_descriptions(): descriptions = request.data if not descriptions: reason = 'no description/s provided' else: try: g = deserialize(descriptions, request.content_type) ted = learn_descriptions_from(g) format = TURTLE if request_wants_turtle() else JSONLD ted_str = serialize_TED(ted, format, prefixes=R.fountain.prefixes) eco_node = URIRef(REPOSITORY_BASE + url_for('get_ted')) VTED.update(ted, _get_thing_graph, eco_node) own_base = unicode(request.url_root) ted_str = ted_str.decode('utf-8').replace(REPOSITORY_BASE + u'/', own_base) response = make_response(ted_str) response.headers['Content-Type'] = format return response except ValueError as e: reason = e.message response = jsonify({'status': 'error', 'reason': reason}) response.status_code = 400 return response
def update_description(self, td, mediatype=JSONLD, ted_path='/ted'): if not td: raise AttributeError('no description/s provided') g = deserialize(td, mediatype) ted = learn_descriptions_from(self.__repository, g) if self.__repository.base[-1] == '/': ted_path = ted_path.lstrip('/') eco_node = URIRef(self.__repository.base + ted_path) self.__VTED.update(ted, self._get_thing_graph, eco_node) return ted
def _learn_with_id(id): vocabulary = request.data try: g = deserialize(vocabulary, format=request.content_type) gw.add_extension(id, g) response = make_response() response.headers['Location'] = url_for('_get_extension', id=id, _external=True) response.status_code = 201 return response except (AttributeError, DuplicateVocabulary, ValueError) as e: reason = e.message response = jsonify({'status': 'error', 'reason': reason}) response.status_code = 400 return response
def _learn_descriptions(): descriptions = request.data try: own_base = unicode(request.url_root) canonical_base = gw.repository.base.rstrip('/') + u'/' descriptions = descriptions.decode('utf-8').replace(own_base, canonical_base) g = deserialize(descriptions, format=request.content_type) ted = gw.learn_descriptions(g, ted_path=url_for('_get_ted')) format = TURTLE if request_wants_turtle() else JSONLD ted_str = serialize_TED(ted, format, prefixes=gw.repository.fountain.prefixes) ted_str = ted_str.decode('utf-8').replace(canonical_base, own_base) response = make_response(ted_str) response.headers['Content-Type'] = format return response except (AttributeError, ValueError) as e: reason = e.message response = jsonify({'status': 'error', 'reason': reason}) response.status_code = 400 return response
def learn_with_id(id): vocabulary = request.data try: if vocabulary: g = deserialize(vocabulary, request.content_type) R.learn(g, ext_id=id) VTED.sync(force=True) response = make_response() response.headers['Location'] = url_for('get_extension', id=id, _external=True) response.status_code = 201 return response else: reason = 'no vocabulary provided' except DuplicateVocabulary as e: reason = e.message except ValueError as e: reason = e.message response = jsonify({'status': 'error', 'reason': reason}) response.status_code = 400 return response