Ejemplo n.º 1
0
def event_detail(request, pk, format=None):
    """
    Retrieve, update or delete an event.
    """
    """
    if 'HTTP_TOKEN' not in request.META:

        return Response(status=status.HTTP_403_FORBIDDEN)
    token = request.META['HTTP_TOKEN']

    if validate_user(token) is False:
        return  Response(status=status.HTTP_403_FORBIDDEN)
    """
    try:
        event = Event.objects.get(pk=pk)
    except Event.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = EventSerializer(event)
        return Response(serializer.data)

    elif request.method == 'PUT':
        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)

    elif request.method == 'DELETE':
        if validate_delete(request, event.owner):
            event.delete()
            return Response(status=status.HTTP_204_NO_CONTENT)
        else:
            return Response(status=status.HTTP_403_FORBIDDEN)
Ejemplo n.º 2
0
 def post(self, request):
     serializer = EventSerializer(data=request.data)
     if serializer.is_valid(raise_exception=True):
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     else:
         return Response(status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
    def parse(self, response):
        for event in response.css(".seite-c-single"):
            title = event.css(".article-title::text").extract_first()
            category = event.css(".article-category::text").extract_first()
            desc = event.css(".article-text::text").extract_first()
            href = self.BASE_URL + event.css(".seite-c-single ::attr(href)").extract_first()
            try:
                start = [x.strip() for x in event.css(".date-display-start ::attr(content)").extract_first().split('T')][0]
                start = datetime.datetime.strptime(start, '%Y-%m-%d').strftime('%Y-%m-%d')# %I:%m:%s.%f')
                end = [x.strip() for x in event.css(".date-display-end ::attr(content)").extract_first().split('T')][0]
                end = datetime.datetime.strptime(end, '%Y-%m-%d').strftime('%Y-%m-%d')# %I:%m:%s.%f')#2018-10-21 12:04:26.255181 2018-12-02 12:12:1543708800.000000
            except:
                start = [x.strip() for x in event.css(".date-display-single ::attr(content)").extract_first().split('T')][0]
                start = datetime.datetime.strptime(start, '%Y-%m-%d').strftime('%Y-%m-%d')# %I:%m:%s.%f')
                end = start

            event_object = Event(title=title, start_date=start,
                                 end_date=end,category=category,
                                 link=href,description=desc,
                                 web_source="Co-Berlin")

            serializer = EventSerializer(event_object)
            content = JSONRenderer().render(serializer.data)
            stream = io.BytesIO(content)
            data = JSONParser().parse(stream)
            serializer = EventSerializer(data=data)
            #print(serializer)
            #print(serializer.is_valid())
            serializer.is_valid()
            try:
                serializer.save()
            except IntegrityError as e:
                logger.error(e.__str__())
Ejemplo n.º 5
0
 def post(self, request):
     payload = request.data
     serializer = EventSerializer(data=payload)
     if serializer.is_valid():
         serializer.save()
         return Response(data=serializer.data, status=201)
     else:
         return Response(data={"message":"Invalid"}, status=400)
Ejemplo n.º 6
0
 def createEvent(self, eventType, dataTime):
     eventData = {
         'userId': self.request.user.pk,
         'eventType': eventType,
         'dataTime': dataTime,
         'desc': "Created from DatapointUploadCsv",
     }
     print("eventData=", eventData)
     serializer = EventSerializer(data=eventData)
     if serializer.is_valid():
         serializer.save()
Ejemplo n.º 7
0
 def create_event(self, request):
     manager = Manager.objects.get(id = request.user.id)
     serializer = EventSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save(manager=manager)
         serializer.save()
         logger.info(f'Event object was created, ID:{serializer.instance.id}')
         return Response(serializer.data, status=201)
     logger.warning(f'Event object was not created by {manager.username}')
     logger.error(f'Server error')
     return Response(serializer.errors, status=500)
Ejemplo n.º 8
0
 def put(self, request, event_id):
     try:
         saved_event = Event.objects.get(pk=event_id)
         serializer = EventSerializer(instance=saved_event,
                                      data=request.data)
         if serializer.is_valid(raise_exception=True):
             serializer.save()
             notify_on_changes(saved_event)
             return Response(serializer.data,
                             status=status.HTTP_202_ACCEPTED)
         else:
             return Response(status=status.HTTP_400_BAD_REQUEST)
     except Event.DoesNotExist:
         return Response(status=status.HTTP_404_NOT_FOUND)
Ejemplo n.º 9
0
def index(request):
    if request.method == 'GET':
        events = Event.objects.all()
        serializer = EventSerializer(events, many=True)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = EventSerializer(data=data)

        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
Ejemplo n.º 10
0
def event_list(request, format=None):
    """
    List all events, or create a new event.
    """
    if request.method == 'GET':
        events = Event.objects.all()
        serializer = EventSerializer(events, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        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)
Ejemplo n.º 11
0
    def parse(self, response):
        for type in response.css(".navi_level3_extra ::attr(class)"):
            if type.extract() != "navi_level3_extra":
                _class = ".col_teaser_{}"
                for event in response.css(_class.format(type.extract())):
                    date = [
                        x.strip() for x in
                        event.css("." + type.extract() +
                                  " ::attr(title)").extract_first().split(':')
                    ][0]
                    title = [
                        x.strip() for x in
                        event.css("." + type.extract() +
                                  " ::attr(title)").extract_first().split(':')
                    ][1]
                    start = datetime.datetime.strptime(
                        date, '%a %d %B %Y').strftime('%Y-%m-%d')
                    end = datetime.datetime.strptime(
                        date, '%a %d %B %Y').strftime('%Y-%m-%d')
                    category = response.css("." + type.extract() +
                                            "::text").extract_first()
                    href = self.BASE_URL + event.css(
                        "." + type.extract() +
                        " ::attr(href)").extract_first()
                    desc = event.css("." + type.extract() +
                                     "_color span::text").extract()[1]

                    event_object = Event(title=title,
                                         start_date=start,
                                         end_date=end,
                                         category=category,
                                         link=href,
                                         description=desc,
                                         web_source="Berghain")
                    serializer = EventSerializer(event_object)
                    content = JSONRenderer().render(serializer.data)
                    stream = io.BytesIO(content)
                    data = JSONParser().parse(stream)
                    serializer = EventSerializer(data=data)
                    serializer.is_valid()
                    try:
                        serializer.save()
                    except IntegrityError as e:
                        logger.error(e.__str__())
Ejemplo n.º 12
0
def event_detail(request, messageId, format=None):
    """
    Retrieve, update or delete a code event.
    """
    try:
        event = Event.objects.get(messageId=messageId)
    except Event.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = EventSerializer(event)
        return Response(serializer.data)

    elif request.method == 'PUT':
        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)

    elif request.method == 'DELETE':
        event.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 13
0
def event_list(request, format=None):
    """
    List all events, or create an event.
    """
    """
    if 'HTTP_TOKEN' not in request.META:
        return Response(status=status.HTTP_403_FORBIDDEN)
    token = request.META['HTTP_TOKEN']

    if validate_user(token) is False:
        return Response(status=status.HTTP_403_FORBIDDEN)
    """
    if request.method == 'GET':
        events = Event.objects.all()
        serializer = EventSerializer(events, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        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)
Ejemplo n.º 14
0
 def test_create(self):
     data = {
         'title': 'bike night',
         'start_time': '2018-10-15T11:12:34+00:00',
         'end_time': '2018-10-16T00:00:00+00:00',
         'description': 'No',
         'venue_id': self.venue.id,
     }
     serializer = EventSerializer(data=data)
     serializer.is_valid(raise_exception=True)
     instance = serializer.save()
     self.assertIsInstance(instance, Event)
     for field, value in data.items():
         with self.subTest(field=field):
             original = getattr(instance, field)
             if isinstance(original, datetime.datetime):
                 original = original.isoformat()
             self.assertEqual(original, value, field)
Ejemplo n.º 15
0
    def perform_create(self, serializer: EventSerializer):
        serializer.save(user=self.request.user)

        return super(EventViewSet, self).perform_create(serializer)