Example #1
0
def HandleGetStoriesRequest(request):
    if request.method != 'GET':
        badResponse = "{method} Not Allowed".format(method=request.method)
        return HttpResponseBadRequest(badResponse,
                                      content_type="text/plain",
                                      status=405)
    text_content_type = "text/plain"
    all_story = []
    json_data = json.loads(request.body)
    cat = json_data['story_cat']
    region = json_data['story_region']
    date = json_data['story_date']
    if date != '*':
        valid_date = date.split('/')
        date = valid_date[2] + '-' + valid_date[1] + '-' + valid_date[0]
    if cat == '*' and region == '*' and date == '*':
        obj_set = Story.objects.all()
    if cat != '*' and region == '*' and date == '*':
        obj_set = Story.objects.filter(Story_Category=cat)
    if cat != '*' and region != '*' and date == '*':
        obj_set = Story.objects.filter(Story_Category=cat, Story_Region=region)
    if cat != '*' and region != '*' and date != '*':
        obj_set = Story.objects.filter(Story_Category=cat,
                                       Story_Region=region,
                                       Post_Date__gte=date)
    if cat == '*' and region != '*' and date == '*':
        obj_set = Story.objects.filter(Story_Region=region)
    if cat == '*' and region != '*' and date != '*':
        obj_set = Story.objects.filter(Story_Region=region,
                                       Post_Date__gte=date)
    if cat != '*' and region == '*' and date != '*':
        obj_set = Story.objects.filter(Story_Category=cat, Post_Date__gte=date)
    if cat == '*' and region == '*' and date != '*':
        obj_set = Story.objects.filter(Post_Date__gte=date)
    if len(obj_set) == 0:
        NoStory = "No Story Found"
        return HttpResponseBadRequest(NoStory, text_content_type, status=404)
    for obj in obj_set:
        datelist = obj.Post_Date.isoformat().split('-')
        date = datelist[2] + '/' + datelist[1] + '/' + datelist[0]
        story_dict = {
            "key": obj.id,
            "headline": obj.Story_Headline,
            "story_cat": obj.Story_Category,
            "story_region": obj.Story_Region,
            "author": str(obj.Authors.Name),
            "story_date": str(obj.Post_Date)[:10],
            "story_details": obj.Story_Details
        }
        all_story.append(story_dict)
        # json_response=serializers.serialize("json",all_story)
        # json_response=json.dumps(all_story)
    response = JsonResponse({"stories": all_story}, safe=True)
    response['Content-Type'] = 'application/json'
    response.status_code = 200
    response.status_phrase = "OK"
    return response