Esempio n. 1
0
def goal_list(request, weekly=False):
    """
    List current goals, or create a new one
    """
    weekly_param = request.GET.get('weekly','false')
    weekly = weekly or weekly_param != 'false'
    try:
        year = int(request.GET.get('year', 0))
    except ValueError as e:
        year = 0
    if year is not 0:
        month = int(request.GET.get('month', 0))
        day = int(request.GET.get('day', 0))
        today = date(year, month, day)
    else:
        today = False

    if request.method == 'GET':
        user = request.user.id
        goals = Goal.getGoals(user=user, weekly=weekly, day=today)
        serializer = GoalSerializer(goals, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        data['owner'] = request.user.id
        if not data['date']:
            data['date'] = today.isoformat() if today else date.today().isoformat()
        serializer = GoalSerializer(data=data, partial=True)
        if serializer and serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=status.HTTP_201_CREATED)

    return JSONResponse(serializer.errors, status=400)