def collection_delete(self): association_in = schema_association.objectify(self.request.validated) association = self._load(association_in) if association is None: # also accept {parent_document_id: y, child_document_id: x} when # for an association {parent_document_id: x, child_document_id: x} association_in = Association( parent_document_id=association_in.child_document_id, child_document_id=association_in.parent_document_id) association = self._load(association_in) if association is None: raise HTTPBadRequest('association does not exist') if is_main_waypoint_association(association): raise HTTPBadRequest( 'as the main waypoint of the route, this waypoint can not ' 'be disassociated') log = association.get_log( self.request.authenticated_userid, is_creation=False) DBSession.delete(association) DBSession.add(log) return {}
def collection_delete(self): association_in = schema_association.objectify(self.request.validated) association = self._load(association_in) if association is None: # also accept {parent_document_id: y, child_document_id: x} when # for an association {parent_document_id: x, child_document_id: x} association_in = Association( parent_document_id=association_in.child_document_id, child_document_id=association_in.parent_document_id) association = self._load(association_in) if association is None: raise HTTPBadRequest('association does not exist') if is_main_waypoint_association(association): raise HTTPBadRequest( 'as the main waypoint of the route, this waypoint can not ' 'be disassociated') log = association.get_log(self.request.authenticated_userid, is_creation=False) DBSession.delete(association) DBSession.add(log) return {}
def collection_post(self): association = schema_association.objectify(self.request.validated) association.parent_document_type = \ self.request.validated['parent_document_type'] association.child_document_type = \ self.request.validated['child_document_type'] if exists_already(association): raise HTTPBadRequest( 'association (or its back-link) exists already') DBSession.add(association) DBSession.add(association.get_log(self.request.authenticated_userid)) update_cache_version_associations( [{ 'parent_id': association.parent_document_id, 'parent_type': association.parent_document_type, 'child_id': association.child_document_id, 'child_type': association.child_document_type }], []) notify_es_syncer_if_needed(association, self.request) update_feed_association_update(association.parent_document_id, association.parent_document_type, association.child_document_id, association.child_document_type, self.request.authenticated_userid) return {}
def collection_post(self): association = schema_association.objectify(self.request.validated) association.parent_document_type = \ self.request.validated['parent_document_type'] association.child_document_type = \ self.request.validated['child_document_type'] if exists_already(association): raise HTTPBadRequest( 'association (or its back-link) exists already') DBSession.add(association) DBSession.add( association.get_log(self.request.authenticated_userid)) update_cache_version_associations( [{'parent_id': association.parent_document_id, 'parent_type': association.parent_document_type, 'child_id': association.child_document_id, 'child_type': association.child_document_type}], []) notify_es_syncer_if_needed(association, self.request) update_feed_association_update( association.parent_document_id, association.parent_document_type, association.child_document_id, association.child_document_type, self.request.authenticated_userid) return {}
def collection_post(self): association = schema_association.objectify(self.request.validated) if exists_already(association): raise HTTPBadRequest( 'association (or its back-link) exists already') DBSession.add(association) DBSession.add(association.get_log(self.request.authenticated_userid)) return {}
def collection_post(self): association = schema_association.objectify(self.request.validated) if exists_already(association): raise HTTPBadRequest( 'association (or its back-link) exists already') DBSession.add(association) DBSession.add( association.get_log(self.request.authenticated_userid)) return {}
def collection_delete(self): association_in = schema_association.objectify(self.request.validated) association = self._load(association_in) if association is None: # also accept {parent_document_id: y, child_document_id: x} when # for an association {parent_document_id: x, child_document_id: x} association_in = Association( parent_document_id=association_in.child_document_id, child_document_id=association_in.parent_document_id) association = self._load(association_in) if association is None: raise HTTPBadRequest('association does not exist') _check_required_associations(association) check_permission_for_association_removal(self.request, association) log = association.get_log(self.request.authenticated_userid, is_creation=False) DBSession.delete(association) DBSession.add(log) update_cache_version_associations( [], [{ 'parent_id': association.parent_document_id, 'parent_type': association.parent_document_type, 'child_id': association.child_document_id, 'child_type': association.child_document_type }]) notify_es_syncer_if_needed(association, self.request) update_feed_association_update(association.parent_document_id, association.parent_document_type, association.child_document_id, association.child_document_type, self.request.authenticated_userid) return {}
def collection_delete(self): association_in = schema_association.objectify(self.request.validated) association = self._load(association_in) if association is None: # also accept {parent_document_id: y, child_document_id: x} when # for an association {parent_document_id: x, child_document_id: x} association_in = Association( parent_document_id=association_in.child_document_id, child_document_id=association_in.parent_document_id) association = self._load(association_in) if association is None: raise HTTPBadRequest('association does not exist') _check_required_associations(association) check_permission_for_association_removal(self.request, association) log = association.get_log( self.request.authenticated_userid, is_creation=False) DBSession.delete(association) DBSession.add(log) update_cache_version_associations( [], [{'parent_id': association.parent_document_id, 'parent_type': association.parent_document_type, 'child_id': association.child_document_id, 'child_type': association.child_document_type}]) notify_es_syncer_if_needed(association, self.request) update_feed_association_update( association.parent_document_id, association.parent_document_type, association.child_document_id, association.child_document_type, self.request.authenticated_userid) return {}