def delete_node(data): """ Node deletion :param data: Node data :return: Response message """ try: client = data['client'] pk = data['pk'] node = Node(client, pk) node.update_node(del_ind=True) if not node.error: # Delete org if root node is deleted if node.base.node_type.node_type == 'ROOTNODE': org = Organization.get_org_by_rootnode( client, node.base.node) del_org = Organization(client, None) del_org.base = org del_org.update_org(del_ind=True) if del_org.error: return [del_org.message] if node.save_node() and del_org.save_org(): return ['{"message": "Deletion successfull"}'] return ['{"error": "Something went wrong"}'] else: if node.save_node(): return ['{"message": "Deletion successfull"}'] return [node.message] except KeyError: return ['{"error": "No valid inputs found"}']
def create_org(data): """ Creates new organization for client :param data: Organization data (should contain client and org_name) :return: Response object/message """ try: # Get client and org_name from data client = data['client'] org_name = data['org_name'] org_obj = Organization(client, None) org_obj.update_org(name=org_name) if not org_obj.error: root_node = Node(client, None) root_node.update_node(name=org_name, node_type=None, parent_node=None, map_id=None) if root_node.save_node(): org_obj.update_org(root_node=root_node.base.node) if org_obj.save_org(): return [org_obj.base] return [org_obj.message] return [root_node.message] return [org_obj.message] except KeyError: # Raised when client or org_name not found return ['{"error": "No valid inputs found"}']
def edit_node_basic_data(data): """ Edit node :param data: Node data :return: Response object/message """ try: client = data['client'] pk = data['pk'] new_name = data['name'] node = Node(client, pk) node.update_node(name=new_name, del_ind=False) if not node.error: # Update org name if root node changed if node.base.node_type.node_type == 'ROOTNODE': # Get org by root node and update both org and root node org = Organization.get_org_by_rootnode( client, node.base.node) edit_org = Organization(client, None) edit_org.base = org edit_org.update_org(name=node.base.name) if edit_org.error: return [edit_org.message] if node.save_node() and edit_org.save_org(): return [node.base] return ['{"error": "Something went wrong"}'] else: if node.save_node(): return [node.base] return [node.message] except KeyError: return ['{"error": "No valid inputs found"}']
def create_node(data): """ Create new node :param data: Node data :return: Response object/message """ try: client = data['client'] name = data['name'] node_type = data['node_type'] parent_node = data['parent_node'] map_id = data['map_id'] new_node = Node(client, None) new_node.update_node(name=name, node_type=node_type, parent_node=parent_node, map_id=map_id) res = new_node.save_node() if res: return [new_node.base] else: return [new_node.message] except KeyError: return ['{"error": "No valid inputs found"}']