Exemplo n.º 1
0
    def start(self, request, pk):
        '''Quickstart a Pomodoro'''
        favorite = self.get_object()
        now = timezone.now().replace(microsecond=0)
        try:
            pomodoro = Pomodoro.objects\
                .filter(owner=request.user).latest('start')
        except Pomodoro.DoesNotExist:
            # Handle the case for a new user that does not have any
            # pomodoros at all
            pass
        else:
            if pomodoro.end > now:
                return JsonResponse({
                    'message': 'Cannot replace active pomodoro',
                    'data': PomodoroSerializer(pomodoro).data
                }, status=409)

        pomodoro = Pomodoro()
        pomodoro.title = favorite.title
        pomodoro.category = favorite.category
        pomodoro.owner = request.user
        pomodoro.start = now
        pomodoro.end = pomodoro.start + datetime.timedelta(minutes=favorite.duration)
        pomodoro.save()

        return JsonResponse(PomodoroSerializer(pomodoro).data, status=201)