Beispiel #1
0
    def create(self, request):
        decoded_token = decode_token(request.META)

        serializer = EventSerializer(data=request.data)
        if serializer.is_valid():
            event = Event()

            data = serializer.data
            data['calendar_id'] = -1
            data['created'] = now()
            data['updated'] = now()
            data['user_id'] = decoded_token['user_id']

            inserted = event.insert_event(data)

            result = {}
            if inserted.get('inserted', 0) == 1:
                e = EventSerializer(event.get_event_with_pk(
                    inserted['generated_keys'][0]),
                                    many=True)
                if len(e.data) > 0:
                    result = e.data[0]

            event.close()

            return Response(result, status=status.HTTP_201_CREATED)

        return Response(serializer.errors)
Beispiel #2
0
def createEvent(request):
    # product = Product.objects.get(id=pk)

    serializer = EventSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
    return Response(serializer.data)
Beispiel #3
0
    def create(self, request):
        decoded_token = decode_token(request.META)
        token = get_token(request.META)
        serializer = EventSerializer(data=request.data)

        if serializer.is_valid():
            client = CalendarDBClient()

            event_id = client.add_event(token, serializer.data)

            st = SchedulingTask(task_type='schedule',
                                status='pending',
                                event_id=event_id,
                                start_time=None,
                                tentative_time=None,
                                initiator_id=decoded_token['user_id'],
                                result='needs_action')
            re = st.save()[0]
            re_s = EventSerializer(re.to_dict())

            return Response(re_s.data, status=status.HTTP_201_CREATED)
        return Response(
            {
                'data': serializer.errors,
                'message': 'Event could not be created with the given data.'
            },
            status=status.HTTP_400_BAD_REQUEST)
Beispiel #4
0
 def test_event_creation_with_invalid_tag(self):
     data = self.valid_data['one_schedule_no_to_date']
     tag1 = Tag.objects.create(name='test tag')
     data['tags'] = [{"name": tag1.name}, {"name": "bad_tag_name"}]
     serializer = EventSerializer(data=data)
     self.assertFalse(serializer.is_valid())
     self.assertEqual(set(serializer.errors.keys()), set(['tags']))
Beispiel #5
0
 def put(self, request, eid, format=None):
     event = self.get_objects(eid)
     serializer = EventSerializer(event, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Beispiel #6
0
 def test_invalid_schedule(self):
     self.client.force_login(self.winery_user)
     data = self.invalid_data['empty_schedule']
     serializer = EventSerializer(data=data)
     self.assertFalse(serializer.is_valid())
     response = self.client.post(reverse("event-list"),
                                 data=data,
                                 content_type="application/json")
     self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Beispiel #7
0
    def put(self, request, event_id, format=None):

        event = Event.objects.get(id=event_id)

        event_serializer = EventSerializer(event, data=request.data)
        if event_serializer.is_valid():
            event_serializer.save()
            return Response('')

        return Response(event_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Beispiel #8
0
    def post(self, request, format=None):
        app_key = request.data['app_key']

        if not self.app_key_valid(app_key): #check validity of the application key
            return Response(serializer.errors, status=status.HTTP_401_UNAUTHORIZED)

        serializer = EventSerializer(data=request.data)

        if not serializer.is_valid():
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        
        serializer.save()

        return Response("OK")
Beispiel #9
0
def fetch_events():

    logger.info('Starting cron script... This may take some time...')

    for location in Location.objects.all():
        events = EventsFetcher.get_items(location)

        for event in events:
            serializer = EventSerializer(data=event)

            if serializer.is_valid():
                serializer.save()
            else:
                logger.error(serializer.errors)

    logger.info('Finished cron script...')
Beispiel #10
0
    def test_event_creation_endpoint_with_different_schedules(
            self, data_key, expected_occurrences_count):
        self.client.force_login(self.winery_user)
        data = self.valid_data[data_key]
        serializer = EventSerializer(data=data)
        self.assertTrue(serializer.is_valid())
        response = self.client.post(reverse("event-list"),
                                    data=data,
                                    content_type="application/json")
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(set(response.json().keys()), set(["url"]))

        db_event = Event.objects.first()
        self.assertEqual(db_event.name, data["name"])
        self.assertEqual(expected_occurrences_count,
                         len(db_event.occurrences.all()))
Beispiel #11
0
    def test_event_creation_with_tags(self):
        self.client.force_login(self.winery_user)
        data = self.valid_data['one_schedule_no_to_date']
        tag1 = Tag.objects.create(name='test tag')
        tag2 = Tag.objects.create(name='other tag')
        data['tags'] = [{"name": tag1.name}, {"name": tag2.name}]
        serializer = EventSerializer(data=data)
        self.assertTrue(serializer.is_valid())
        response = self.client.post(reverse("event-list"),
                                    data=data,
                                    content_type="application/json")
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(set(response.json().keys()), set(["url"]))

        db_event = Event.objects.first()
        self.assertEqual(db_event.name, data["name"])
        tag_list = [tag.name for tag in db_event.tags.all()]
        self.assertEqual(set(tag_list), set(['test tag', 'other tag']))
Beispiel #12
0
    def create(self, request, calendar_id):
        # self.kwargs['calendar_id']
        decoded_token = decode_token(request.META)

        calendar = Calendar()
        obj = calendar.get(decoded_token['user_id'], calendar_id)
        calendar.close()

        if len(obj) < 1:
            calendar_id = -1
            # return Response({"message": "calendar_id does not exists."},
            #                status=status.HTTP_404_NOT_FOUND)

        serializer = EventSerializer(data=request.data)
        if serializer.is_valid():
            event = Event()

            data = serializer.data
            data['calendar_id'] = calendar_id
            data['created'] = now()
            data['updated'] = now()
            data['user_id'] = decoded_token['user_id']

            inserted = event.insert_event(data)
            event.close()

            return Response({
                "message": "Event created.",
                "data": inserted
            },
                            status=status.HTTP_201_CREATED)

        print("OK")
        print(serializer.errors)

        return Response(serializer.errors)
Beispiel #13
0
 def create(self, request):
     serializer = EventSerializer(data=request.data,
                                  context={'request': request})
     serializer.is_valid(raise_exception=True)
     serializer.save(employer=request.user.employer)
     return Response(serializer.data, status=status.HTTP_201_CREATED)
Beispiel #14
0
 def post(self, request, format=None):
     serializer = EventSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Beispiel #15
0
 def test_event_creation_with_invalid_category(self):
     data = self.valid_data['one_schedule_no_to_date']
     data['categories'] = [{"name": "bad_category_name"}]
     serializer = EventSerializer(data=data)
     self.assertFalse(serializer.is_valid())
     self.assertEqual(set(serializer.errors.keys()), set(['categories']))