Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render
- from django.views.decorators.csrf import csrf_exempt
- from django.contrib.auth import authenticate, login, logout
- from django.http import HttpResponse
- from .models import News, Authors
- import simplejson as json
- import requests
- @csrf_exempt
- def HandleLogin(request):
- if(request.method == 'POST'):
- un = request.POST.get('username')
- pw = request.POST.get('password')
- # data = 'user name = ' + un + ', password = ' + pw
- user = authenticate(request, username = un, password = pw)
- if user is not None:
- if user.is_active:
- login(request,user)
- if(user.is_authenticated):
- # print('Welcome ' + user.username )
- http_login_succ = HttpResponse("Login Succsessful! Welcome "+ user.username +"!")
- http_login_succ['Content-type'] = 'text/plain'
- http_login_succ.status_code = 200
- http_login_succ.reason_phrase = 'OK'
- return http_login_succ
- else:
- return HttpResponse ('disabled account')
- else:
- return HttpResponse('invalid login')
- else:
- return HttpResponse("You need to make POST request in order to log in!")
- @csrf_exempt
- def HandleLogout(request):
- if(request.method == 'POST'):
- logout(request)
- return HttpResponse('Logout succssessful goodbye!')
- else:
- return HttpResponse("You need to make POST request in order to log out!")
- @csrf_exempt
- def PostStory(request):
- if(request.method == 'POST'):
- if request.user.is_authenticated:
- body = request.body.decode("utf-8")
- data = json.loads(body)
- headline = data['headline']
- category = data['category']
- region = data['region']
- details = data['details']
- author = Authors.objects.get(name=request.user)
- story = News()
- story.headline = headline
- story.category = category
- story.region = region
- story.author = author
- story.details = details
- story.save()
- http_response = HttpResponse("CREATED")
- http_response.status_code = 201
- http_response.reason_phrase = 'CREATED'
- return http_response
- else:
- http_response = HttpResponse("You need to log in in order to post a story")
- http_response['Content-type'] = 'text/plain'
- http_response.status_code = 503
- http_response.reason_phrase = 'Service Unavailable'
- return http_response
- else:
- return HttpResponse("You need to sent POST request in order to post a story")
- @csrf_exempt
- def GetStory(request):
- http_bad_responce = HttpResponse()
- http_bad_responce['Content-Type'] = 'text/plain'
- if(request.method != 'GET'):
- http_bad_responce.content = 'Only GET requests are allowed for this resource\n'
- return http_bad_responce
- body = request.body.decode("utf-8")
- data = json.loads(body)
- the_list = []
- category = data['story_cat']
- region = data['story_region']
- date = data['story_date']
- print(category)
- if(category == "*" and region == '*' and date == '*'):
- news_list = News.objects.all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id': record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category != "*" and region == '*' and date == '*'):
- news_list = News.objects.filter(category = category).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category == "*" and region != '*' and date == '*'):
- news_list = regionquery = News.objects.filter(region = region).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category == "*" and region == '*' and date != '*'):
- news_list = regionquery = News.objects.filter(date = date).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category != "*" and region != '*' and date == '*'):
- news_list = regionquery = News.objects.filter(category=category,region=region).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category == "*" and region != '*' and date != '*'):
- news_list = regionquery = News.objects.filter(date=date,region=region).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category != "*" and region == '*' and date != '*'):
- news_list = regionquery = News.objects.filter(date=date,category=category).all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if(category != "*" and region != '*' and date != '*'):
- news_list = regionquery = News.objects.all().values('id','headline','category','region','author', 'date', 'details')
- for record in news_list:
- item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
- the_list.append(item)
- if not news_list:
- return HttpResponse("No news story found for your parameters")
- payload = {'news_list': the_list}
- httesttp_response = HttpResponse(json.dumps(payload, default=str))
- http_response['Content-Type'] = 'application/json'
- http_response.status_code = 200
- http_response.reason_phrase = 'OK'
- return http_response
- @csrf_exempt
- def DeleteStory(request):
- if(request.method == 'POST'):
- if request.user.is_authenticated:
- body = request.body.decode("utf-8")
- data = json.loads(body)
- key = data['id']
- News.objects.filter(id = key).delete()
- http_response = HttpResponse("CREATED")
- http_response['Content-Type'] = 'text/plain'
- http_response.status_code = 201
- http_response.reason_phrase = 'CREATED'
- return http_response
- else:
- http_response = HttpResponse("Service Unavailable")
- http_response['Content-Type'] = 'text/plain'
- http_response.status_code = 503
- http_response.reason_phrase = 'Service Unavailable'
- else:
- return HttpResponse("Use POST request to delete a story")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement