def post(self, request): """Creates an event.""" user_id = request.user_id venue_id = request.POST.get('venue_id') title = request.POST.get('title') event_date = request.POST.get('event_date') event_description = request.POST.get('event_description') scope = request.POST.get('scope', models.Event.SCOPE_PUBLIC) if utils.validate_args([user_id, venue_id, title, event_date, event_description, scope]): utils.log('View error: missing args') return HttpResponseBadRequest() # Convert the timestamp to datetime try: event_date = float(event_date) except ValueError: utils.log('View error: event_date is invalid') return HttpResponseBadRequest() event_date = utils.get_datetime(event_date) models.Event.objects.create(organizer_id=user_id, venue_id=venue_id, title=title, event_date=event_date, event_description=event_description, scope=scope) return HttpResponseNoContent()
def post(self, request, event_id): user_id = request.user_id attendance_flag = request.POST.get('attendance') if utils.validate_args([event_id, user_id, attendance_flag]): utils.log('View error: missing args') return HttpResponseBadRequest() try: attendance_flag = int(attendance_flag) except ValueError: return HttpResponseBadRequest() if attendance_flag not in (models.Attendance.ATTENDING, models.Attendance.NOT_ATTENDING): return HttpResponseBadRequest() attendance, created = models.Attendance.objects.get_or_create( event__id=event_id, user__id=user_id, defaults={'event_id': event_id, 'user_id': user_id, 'attendance': attendance_flag}) if not created: attendance.attendance = attendance_flag attendance.save() return HttpResponseNoContent()
def get(self, request): lat = request.GET.get('lat') lng = request.GET.get('lng') search_query = request.GET.get('q') if utils.validate_args([lat, lng, search_query]): utils.log('View error: missing args') return HttpResponseBadRequest() try: lat, lng = float(lat), float(lng) except ValueError: utils.log('View error: coords data is invalid') return HttpResponseBadRequest() url = 'https://api.foursquare.com/v2/venues/search' params = {} params['client_id'] = settings.CLIENT_ID params['client_secret'] = settings.CLIENT_SECRET params['ll'] = '%f,%f' % (lat, lng) params['v'] = settings.FQ_VERSION params['query'] = search_query fq_response = requests.get(url, params=params) json_response = fq_response.json() response = [utils.venue_to_dict(v) for v in json_response['response']['venues']] return JsonResponse(response)
def post(self, request, event_id): user_id = request.user_id comment = request.POST.get('comment') if utils.validate_args([event_id, user_id, comment]): utils.log('View error: missing args') return HttpResponseBadRequest() # Create the comment object. models.Comment.objects.create(event_id=event_id, user_id=user_id, comment=comment) return HttpResponseNoContent()
def process_exception(self, request, exception): tb = traceback.format_exc() utils.log('API Exception: %s: %s' % (exception, tb))