def obj_create(self, bundle, **kwargs): """ Handles creating Campaigns through the API. :param bundle: Bundle containing the information to create the Campaign. :type bundle: Tastypie Bundle object. :returns: Bundle object. :raises BadRequest: If a campaign name is not provided or creation fails. """ analyst = bundle.request.user.username name = bundle.data.get('name', None) description = bundle.data.get('description', None) aliases = bundle.data.get('aliases', None) bucket_list = bundle.data.get('bucket_list', None) ticket = bundle.data.get('ticket', None) if not name: raise BadRequest('Need a Campaign name.') result = add_campaign(name, description, aliases, analyst, bucket_list, ticket) if not result['success']: raise BadRequest(result['message']) else: return bundle
def parse_campaigns(self, indicators, campaigns): for campaign in campaigns: res = add_campaign(str(campaign.title), str(campaign.description), None, 'taxii', source=self.source.name, id=self.package.id_) if 'id' in res: self.imported[indicators[0].id_] = ('Campaign', class_from_id( 'Campaign', res['id'])) return
def obj_create(self, bundle, **kwargs): """ Handles creating Campaigns through the API. :param bundle: Bundle containing the information to create the Campaign. :type bundle: Tastypie Bundle object. :returns: HttpResponse. """ user = bundle.request.user name = bundle.data.get('name', None) description = bundle.data.get('description', None) aliases = bundle.data.get('aliases', None) bucket_list = bundle.data.get('bucket_list', None) ticket = bundle.data.get('ticket', None) content = {'return_code': 1, 'type': 'Campaign'} if not name: content['message'] = 'Need a Campaign name.' self.crits_response(content) if user.has_access_to(CampaignACL.WRITE): result = add_campaign(name, description, aliases, user, bucket_list, ticket) else: result = {'success':False, 'message':'User does not have permission to create Object.'} if result.get('id'): url = reverse('api_dispatch_detail', kwargs={'resource_name': 'campaigns', 'api_name': 'v1', 'pk': result.get('id')}) content['url'] = url content['id'] = result.get('id') if result['success']: content['return_code'] = 0 content['message'] = result['message'] self.crits_response(content)