示例#1
0
 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"}']
示例#2
0
 def get_node_details(data):
     try:
         client = data['client']
         pk = data['pk']
         n_type = data['node_type']
         clnt = OrgClient.get_client(client)
         obj = None
         sel = {'client': clnt, 'del_ind': False}
         if n_type != "":
             # Get the node
             node = Node.get_node(client, pk)
             node_type = node.node_type.node_type
             if node_type == 'ROOTNODE' or node_type == 'NODE':
                 return []
             elif node_type == "CC":
                 obj = OrgCompanies
                 sel['company_id'] = node.map_id
             elif node_type == "P_ORG":
                 obj = OrgPorg
                 sel['porg_id'] = node.map_id
             elif node_type == "P_GROUP":
                 obj = OrgPGroup
                 sel['pgroup_id'] = node.map_id
             node_det = get_object_or_404(obj, **sel)
             return [node_det]
         else:
             # Get the user
             sel['pk'] = pk
             user = get_object_or_404(OrgUsers, **sel)
             return [user]
     except KeyError:
         return ['{"error": "Invalid inputs found"}']
示例#3
0
 def get_children(data):
     try:
         client = data['client']
         guid = data['guid']
         return Node.get_children(client, guid)
     except KeyError:
         return ['{"error": "Invalid inputs found"}']
示例#4
0
 def get_node(data):
     try:
         client = data['client']
         guid = data['guid']
         return [Node.get_node(client, guid)]
     except KeyError:
         return ['{"error": "Invalid inputs found"}']
示例#5
0
 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"}']
示例#6
0
 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"}']
示例#7
0
 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"}']
示例#8
0
 def get_node_types(data):
     """
     Get different node types available in client (except ROOTNODE)
     :param data: Client data
     :return: Response object
     """
     try:
         client = data['client']
         n_types = Node.get_node_types(client)
         if not n_types.count() == 0:
             return n_types
         else:
             return ['{"info": "Node types not found"}']
     except KeyError:
         return ['{"error""": "No client found"}']
示例#9
0
 def modify_node_details(data):
     try:
         client = data['client']
         pk = data['pk']
         n_type = data['node_type']
         clnt = OrgClient.get_client(client)
         obj = None
         sel = {'client': clnt, 'del_ind': False}
         inp = {'client': clnt}
         if n_type != "":
             # Get the node
             node = Node.get_node(client, pk)
             node_type = node.node_type.node_type
             if node_type == 'ROOTNODE' or node_type == 'NODE':
                 return []
             elif node_type == "CC":
                 obj = OrgCompanies
                 sel['company_id'] = node.map_id
                 inp['name1'] = data['name1']
                 inp['name2'] = data['name2']
             elif node_type == "P_ORG":
                 obj = OrgPorg
                 sel['porg_id'] = node.map_id
                 inp['description'] = data['description']
             elif node_type == "P_ORG":
                 obj = OrgPGroup
                 sel['pgroup_id'] = node.map_id
                 inp['description'] = data['description']
             try:
                 node_det = obj.objects.filter(**sel).update(**inp)
                 return [node_det]
             except obj.DoesNotExist:
                 node_det = obj()
                 node_det.objects.modify(**inp)
                 node_det.save()
                 return [node_det]
         else:
             # Get the user
             sel['pk'] = pk
             user = get_object_or_404(OrgUsers, **sel)
             inp['name1'] = data['name1']
             inp['name2'] = data['name2']
             user.objects.modify(**inp)
             return [user]
             pass
     except KeyError:
         return ['{"error": "Invalid inputs found"}']
示例#10
0
 def get_node_basic_data(data):
     """
     Handles basic data tab details
     :param data: Node data
     :return: Response object/message
     """
     try:
         client = data['client']
         pk = data['pk']
         node_type = data['node_type']
         clnt = OrgClient.get_client(client)
         temp = {'client': clnt, 'del_ind': False}
         if node_type != "" and node_type is not None:
             node = Node.get_node(client, pk)
             obj = OrgModel
             temp['map_id'] = node.map_id
             node_detail = get_object_or_404(obj, **temp)
             return [node_detail]
         else:
             temp['pk'] = pk
             user = get_object_or_404(OrgUsers, **temp)
             return [user]
     except KeyError:
         return ['{"error": "Invalid inputs found"}']