def add_campaign(name, description, aliases, analyst, bucket_list=None, ticket=None): """ Add a Campaign. :param name: The name of the new Campaign. :type name: str :param description: Description of the new Campaign. :type description: str :param aliases: Aliases for the new Campaign. :type aliases: str (comma separated) or list. :param analyst: The user adding the Campaign. :type analyst: str :param bucket_list: Buckets to add to this Campaign. :type bucket_list: str (comma separated) or list. :param ticket: Ticket(s) to add to this Campaign. :type ticket: str (comma separated) or list. :returns: dict with key 'success' (boolean) and 'message' (str). """ # Verify the Campaign does not exist. campaign = Campaign.objects(name=name).first() if campaign: return {'success': False, 'message': ['Campaign already exists.'], 'id': str(campaign.id)} # Create new campaign. campaign = Campaign(name=name) campaign.edit_description(description) if bucket_list: campaign.add_bucket_list(bucket_list, analyst) if ticket: campaign.add_ticket(ticket, analyst) # Adjust aliases. if isinstance(aliases, basestring): alias_list = aliases.split(',') final_aliases = [a.strip() for a in alias_list] elif isinstance(aliases, list): final_aliases = [a.strip() for a in aliases] else: final_aliases = [] campaign.add_alias(final_aliases) try: campaign.save(username=analyst) campaign.reload() return {'success': True, 'message': 'Campaign created successfully!', 'id': str(campaign.id)} except ValidationError, e: return {'success': False, 'message': "Invalid value: %s" % e}
def add_campaign(name, description, aliases, analyst, bucket_list=None, ticket=None): """ Add a Campaign. :param name: The name of the new Campaign. :type name: str :param description: Description of the new Campaign. :type description: str :param aliases: Aliases for the new Campaign. :type aliases: str (comma separated) or list. :param analyst: The user adding the Campaign. :type analyst: str :param bucket_list: Buckets to add to this Campaign. :type bucket_list: str (comma separated) or list. :param ticket: Ticket(s) to add to this Campaign. :type ticket: str (comma separated) or list. :returns: dict with key 'success' (boolean) and 'message' (str). """ # Verify the Campaign does not exist. campaign = Campaign.objects(name=name).first() if campaign: return { 'success': False, 'message': ['Campaign already exists.'], 'id': str(campaign.id) } # Create new campaign. campaign = Campaign(name=name) campaign.edit_description(description) if bucket_list: campaign.add_bucket_list(bucket_list, analyst) if ticket: campaign.add_ticket(ticket, analyst) # Adjust aliases. if isinstance(aliases, basestring): alias_list = aliases.split(',') final_aliases = [a.strip() for a in alias_list] elif isinstance(aliases, list): final_aliases = [a.strip() for a in aliases] else: final_aliases = [] campaign.add_alias(final_aliases) try: campaign.save(username=analyst) campaign.reload() return { 'success': True, 'message': 'Campaign created successfully!', 'id': str(campaign.id) } except ValidationError, e: return {'success': False, 'message': "Invalid value: %s" % e}
def add_campaign(name, description, aliases, analyst, bucket_list=None, ticket=None, related_id=None, related_type=None, relationship_type=None): """ Add a Campaign. :param name: The name of the new Campaign. :type name: str :param description: Description of the new Campaign. :type description: str :param aliases: Aliases for the new Campaign. :type aliases: str (comma separated) or list. :param analyst: The user adding the Campaign. :type analyst: str :param bucket_list: Buckets to add to this Campaign. :type bucket_list: str (comma separated) or list. :param ticket: Ticket(s) to add to this Campaign. :type ticket: str (comma separated) or list. :param related_id: ID of object to create relationship with :type related_id: str :param related_type: Type of object to create relationship with :type related_id: str :param relationship_type: Type of relationship to create. :type relationship_type: str :returns: dict with key 'success' (boolean) and 'message' (str). """ # Verify the Campaign does not exist. campaign = Campaign.objects(name=name).first() if campaign: return {'success': False, 'message': ['Campaign already exists.'], 'id': str(campaign.id)} # Create new campaign. campaign = Campaign(name=name) campaign.edit_description(description) if bucket_list: campaign.add_bucket_list(bucket_list, analyst) if ticket: campaign.add_ticket(ticket, analyst) # Adjust aliases. if isinstance(aliases, basestring): alias_list = aliases.split(',') final_aliases = [a.strip() for a in alias_list] elif isinstance(aliases, list): final_aliases = [a.strip() for a in aliases] else: final_aliases = [] campaign.add_alias(final_aliases) related_obj = None if related_id and related_type: related_obj = class_from_id(related_type, related_id) if not related_obj: retVal['success'] = False retVal['message'] = 'Related Object not found.' return retVal campaign.save(username=analyst) if related_obj and relationship_type and campaign: relationship_type=RelationshipTypes.inverse(relationship=relationship_type) campaign.add_relationship(related_obj, relationship_type, analyst=analyst, get_rels=False) campaign.save(username=analyst) campaign.reload() try: campaign.save(username=analyst) campaign.reload() return {'success': True, 'message': 'Campaign created successfully!', 'id': str(campaign.id)} except ValidationError, e: return {'success': False, 'message': "Invalid value: %s" % e}