Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.29 KB | None | 0 0
  1. from django.shortcuts import render
  2. from django.views.decorators.csrf import csrf_exempt
  3. from django.contrib.auth import authenticate, login, logout
  4. from django.http import HttpResponse
  5. from .models import News, Authors
  6. import simplejson as json
  7. import requests
  8.  
  9.  
  10. @csrf_exempt
  11. def HandleLogin(request):
  12.     if(request.method == 'POST'):
  13.         un = request.POST.get('username')
  14.         pw = request.POST.get('password')
  15.         # data = 'user name = ' + un + ', password = ' + pw
  16.         user = authenticate(request, username = un, password = pw)
  17.         if user is not None:
  18.             if user.is_active:
  19.                 login(request,user)
  20.                 if(user.is_authenticated):
  21.                     # print('Welcome ' + user.username )
  22.                     http_login_succ = HttpResponse("Login Succsessful! Welcome "+ user.username +"!")
  23.                     http_login_succ['Content-type'] = 'text/plain'
  24.                     http_login_succ.status_code = 200
  25.                     http_login_succ.reason_phrase = 'OK'
  26.                 return http_login_succ
  27.             else:
  28.                 return HttpResponse ('disabled account')
  29.         else:
  30.             return HttpResponse('invalid login')
  31.     else:
  32.         return HttpResponse("You need to make POST request in order to log in!")
  33.  
  34. @csrf_exempt
  35. def HandleLogout(request):
  36.     if(request.method == 'POST'):
  37.         logout(request)
  38.         return HttpResponse('Logout succssessful goodbye!')
  39.     else:
  40.         return HttpResponse("You need to make POST request in order to log out!")
  41.  
  42.  
  43.  
  44.        
  45. @csrf_exempt
  46. def PostStory(request):
  47.     if(request.method == 'POST'):
  48.         if request.user.is_authenticated:
  49.             body = request.body.decode("utf-8")
  50.             data = json.loads(body)
  51.            
  52.             headline = data['headline']
  53.             category = data['category']
  54.             region = data['region']
  55.             details = data['details']
  56.             author = Authors.objects.get(name=request.user)
  57.  
  58.             story = News()
  59.             story.headline = headline
  60.             story.category = category
  61.             story.region = region
  62.             story.author = author
  63.             story.details = details
  64.             story.save()
  65.  
  66.             http_response = HttpResponse("CREATED")
  67.             http_response.status_code = 201
  68.             http_response.reason_phrase = 'CREATED'
  69.             return http_response
  70.         else:
  71.              http_response = HttpResponse("You need to log in in order to post a story")
  72.              http_response['Content-type'] = 'text/plain'
  73.              http_response.status_code = 503
  74.              http_response.reason_phrase = 'Service Unavailable'
  75.              return http_response
  76.     else:
  77.         return HttpResponse("You need to sent POST request in order to post a story")
  78.  
  79. @csrf_exempt
  80. def GetStory(request):
  81.     http_bad_responce = HttpResponse()
  82.     http_bad_responce['Content-Type'] = 'text/plain'
  83.     if(request.method != 'GET'):
  84.         http_bad_responce.content = 'Only GET requests are allowed for this resource\n'
  85.         return http_bad_responce
  86.  
  87.     body = request.body.decode("utf-8")
  88.     data = json.loads(body)
  89.     the_list = []
  90.  
  91.     category = data['story_cat']
  92.     region = data['story_region']
  93.     date = data['story_date']
  94.     print(category)
  95.  
  96.     if(category == "*" and region == '*' and date == '*'):
  97.         news_list = News.objects.all().values('id','headline','category','region','author', 'date', 'details')
  98.         for record in news_list:
  99.             item = {'id': record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  100.             the_list.append(item)
  101.     if(category != "*" and region == '*' and date == '*'):
  102.         news_list = News.objects.filter(category = category).all().values('id','headline','category','region','author', 'date', 'details')
  103.         for record in news_list:
  104.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  105.             the_list.append(item)
  106.     if(category == "*" and region != '*' and date == '*'):
  107.         news_list = regionquery = News.objects.filter(region = region).all().values('id','headline','category','region','author', 'date', 'details')
  108.         for record in news_list:
  109.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  110.             the_list.append(item)
  111.     if(category == "*" and region == '*' and date != '*'):
  112.         news_list = regionquery = News.objects.filter(date = date).all().values('id','headline','category','region','author', 'date', 'details')
  113.         for record in news_list:
  114.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  115.             the_list.append(item)
  116.     if(category != "*" and region != '*' and date == '*'):
  117.         news_list = regionquery = News.objects.filter(category=category,region=region).all().values('id','headline','category','region','author', 'date', 'details')
  118.         for record in news_list:
  119.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  120.             the_list.append(item)
  121.     if(category == "*" and region != '*' and date != '*'):
  122.         news_list = regionquery = News.objects.filter(date=date,region=region).all().values('id','headline','category','region','author', 'date', 'details')
  123.         for record in news_list:
  124.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  125.             the_list.append(item)
  126.     if(category != "*" and region == '*' and date != '*'):
  127.         news_list = regionquery = News.objects.filter(date=date,category=category).all().values('id','headline','category','region','author', 'date', 'details')
  128.         for record in news_list:
  129.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  130.             the_list.append(item)
  131.     if(category != "*" and region != '*' and date != '*'):
  132.         news_list = regionquery = News.objects.all().values('id','headline','category','region','author', 'date', 'details')
  133.         for record in news_list:
  134.             item = {'id':record['id'],'headline': record['headline'], 'category': record['category'], 'region' : record['region'], 'author':record['author'], 'date': record['date'],'details': record['details']}
  135.             the_list.append(item)
  136.  
  137.     if not news_list:
  138.         return HttpResponse("No news story found for your parameters")
  139.  
  140.     payload = {'news_list': the_list}
  141.     httesttp_response = HttpResponse(json.dumps(payload, default=str))
  142.     http_response['Content-Type'] = 'application/json'
  143.     http_response.status_code = 200
  144.     http_response.reason_phrase = 'OK'
  145.     return http_response
  146.  
  147. @csrf_exempt
  148. def DeleteStory(request):
  149.     if(request.method == 'POST'):
  150.         if request.user.is_authenticated:
  151.             body = request.body.decode("utf-8")
  152.             data = json.loads(body)
  153.             key = data['id']
  154.             News.objects.filter(id = key).delete()
  155.             http_response = HttpResponse("CREATED")
  156.             http_response['Content-Type'] = 'text/plain'
  157.             http_response.status_code = 201
  158.             http_response.reason_phrase = 'CREATED'
  159.             return http_response
  160.         else:
  161.             http_response = HttpResponse("Service Unavailable")
  162.             http_response['Content-Type'] = 'text/plain'
  163.             http_response.status_code = 503
  164.             http_response.reason_phrase = 'Service Unavailable'
  165.     else:
  166.         return HttpResponse("Use POST request to delete a story")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement