def obj_create(self, bundle, **kwargs): """ Handles creating Events through the API. :param bundle: Bundle containing the information to create the Event. :type bundle: Tastypie Bundle object. :returns: HttpResponse. """ analyst = bundle.request.user.username title = bundle.data.get('title', None) description = bundle.data.get('description', None) event_type = bundle.data.get('event_type', None) source = bundle.data.get('source', None) method = bundle.data.get('method', None) reference = bundle.data.get('reference', None) date = bundle.data.get('date', None) bucket_list = bundle.data.get('bucket_list', None) ticket = bundle.data.get('ticket', None) campaign = bundle.data.get('campaign', None) campaign_confidence = bundle.data.get('campaign_confidence', None) content = {'return_code': 0, 'type': 'Event'} if not title or not event_type or not source or not description: content[ 'message'] = 'Must provide a title, event_type, source, and description.' self.cripts_response(content) if event_type not in EventTypes.values(): content['message'] = 'Not a valid Event Type.' self.cripts_response(content) result = add_new_event( title, description, event_type, source, method, reference, date, analyst, bucket_list, ticket, ) if result.get('message'): content['message'] = result.get('message') content['id'] = result.get('id', '') if result.get('id'): url = reverse('api_dispatch_detail', kwargs={ 'resource_name': 'events', 'api_name': 'v1', 'pk': result.get('id') }) content['url'] = url if result['success']: content['return_code'] = 0 else: content['return_code'] = 1 self.cripts_response(content)
def obj_create(self, bundle, **kwargs): """ Handles creating Events through the API. :param bundle: Bundle containing the information to create the Event. :type bundle: Tastypie Bundle object. :returns: HttpResponse. """ analyst = bundle.request.user.username title = bundle.data.get('title', None) description = bundle.data.get('description', None) event_type = bundle.data.get('event_type', None) source = bundle.data.get('source', None) method = bundle.data.get('method', None) reference = bundle.data.get('reference', None) date = bundle.data.get('date', None) bucket_list = bundle.data.get('bucket_list', None) ticket = bundle.data.get('ticket', None) campaign = bundle.data.get('campaign', None) campaign_confidence = bundle.data.get('campaign_confidence', None) content = {'return_code': 0, 'type': 'Event'} if not title or not event_type or not source or not description: content['message'] = 'Must provide a title, event_type, source, and description.' self.cripts_response(content) if event_type not in EventTypes.values(): content['message'] = 'Not a valid Event Type.' self.cripts_response(content) result = add_new_event(title, description, event_type, source, method, reference, date, analyst, bucket_list, ticket, ) if result.get('message'): content['message'] = result.get('message') content['id'] = result.get('id', '') if result.get('id'): url = reverse('api_dispatch_detail', kwargs={'resource_name': 'events', 'api_name': 'v1', 'pk': result.get('id')}) content['url'] = url if result['success']: content['return_code'] = 0 else: content['return_code'] = 1 self.cripts_response(content)
def add_event(request): """ Add an event to CRIPTs. Should be an AJAX POST. :param request: Django request object (Required) :type request: :class:`django.http.HttpRequest` :returns: :class:`django.http.HttpResponse` """ if request.method == "POST" and request.is_ajax(): event_form = EventForm(request.user, request.POST) if event_form.is_valid(): data = event_form.cleaned_data result = add_new_event(title=data['title'], description=data['description'], event_type=data['event_type'], source=data['source'], method=data['method'], reference=data['reference'], date=data['occurrence_date'], bucket_list=data[form_consts.Common.BUCKET_LIST_VARIABLE_NAME], ticket=data[form_consts.Common.TICKET_VARIABLE_NAME], analyst=request.user.username, related_id=data['related_id'], related_type=data['related_type'], relationship_type=data['relationship_type']) if 'object' in result: del result['object'] return HttpResponse(json.dumps(result), content_type="application/json") else: return HttpResponse(json.dumps({'form': event_form.as_table(), 'success': False}), content_type="application/json") else: return render_to_response("error.html", {"error": "Expected AJAX POST"}, RequestContext(request))