Example #1
0
    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()
Example #2
0
    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()
Example #3
0
    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)
Example #4
0
    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()
Example #5
0
 def process_exception(self, request, exception):
     tb = traceback.format_exc()
     utils.log('API Exception: %s: %s' % (exception, tb))