Esempio n. 1
0
    def get(self, request, *args, **kwargs):
        user, categories = request.user, request.GET.get("categories", [])
        coords = [
            request.GET.get('latitude'),
            request.GET.get('longitude'),
            request.GET.get("radius", 25)
        ]
        today = date.today()
        start, end = request.GET.get("startDate", str(today)), request.GET.get(
            "endDate", str(today + timedelta(days=7)))
        meetup_type = request.GET.get('type', 'public')
        latitude, longitude, radius = get_user_coordinates(coords, request)

        if meetup_type == "public":
            meetups = Meetup.get_public(categories, coords, request, start,
                                        end)
        elif meetup_type == "private":
            meetups = Meetup.get_private(categories, coords, request, user,
                                         start, end)
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)

        meetups_json = {}

        if meetups:
            for meetup in meetups.all():
                serializer = MeetupSerializer(meetup, context={"user": user})
                meetups_json[meetup.uri] = serializer.data

        return Response({
            "meetups": meetups_json,
            'count': len(meetups_json),
            "coords": {
                "latitude": float(latitude),
                "longitude": float(longitude)
            }
        })
Esempio n. 2
0
 def test_get_public_meetups_no_categories(self):
     meetups = Meetup.get_public([], [34.228754, -118.2351192, 25], None,
                                 yesterday, tomorrow)
     self.assertEqual(meetups.count(), 1)
     self.assertEqual(meetups.first(), self.public)