11# Uncomment the required imports before adding the code
22
3- # from django.shortcuts import render
4- # from django.http import HttpResponseRedirect, HttpResponse
5- # from django.contrib.auth.models import User
6- # from django.shortcuts import get_object_or_404, render, redirect
7- # from django.contrib.auth import logout
8- # from django.contrib import messages
9- # from datetime import datetime
3+ from django .shortcuts import render
4+ from django .http import HttpResponseRedirect , HttpResponse
5+ from django .contrib .auth .models import User
6+ from django .shortcuts import get_object_or_404 , render , redirect
7+ from django .contrib .auth import logout
8+ from django .contrib import messages
9+ from datetime import datetime
1010
1111from django .http import JsonResponse
1212from django .contrib .auth import login , authenticate
1313import logging
1414import json
1515from django .views .decorators .csrf import csrf_exempt
16- # from .populate import initiate
16+ from .populate import initiate
1717
1818
1919# Get an instance of a logger
@@ -39,12 +39,45 @@ def login_user(request):
3939 return JsonResponse (data )
4040
4141# Create a `logout_request` view to handle sign out request
42- # def logout_request(request):
42+ def logout_request (request ):
43+ logout (request ) # Terminate user session
44+ data = {"userName" :"" } # Return empty username
45+ return JsonResponse (data )
4346# ...
4447
4548# Create a `registration` view to handle sign up request
46- # @csrf_exempt
47- # def registration(request):
49+ @csrf_exempt
50+ def registration (request ):
51+ context = {}
52+
53+ # Load JSON data from the request body
54+ data = json .loads (request .body )
55+ username = data ['userName' ]
56+ password = data ['password' ]
57+ first_name = data ['firstName' ]
58+ last_name = data ['lastName' ]
59+ email = data ['email' ]
60+ username_exist = False
61+ email_exist = False
62+ try :
63+ # Check if user already exists
64+ User .objects .get (username = username )
65+ username_exist = True
66+ except :
67+ # If not, simply log this is a new user
68+ logger .debug ("{} is new user" .format (username ))
69+
70+ # If it is a new user
71+ if not username_exist :
72+ # Create user in auth_user table
73+ user = User .objects .create_user (username = username , first_name = first_name , last_name = last_name ,password = password , email = email )
74+ # Login the user and redirect to list page
75+ login (request , user )
76+ data = {"userName" :username ,"status" :"Authenticated" }
77+ return JsonResponse (data )
78+ else :
79+ data = {"userName" :username ,"error" :"Already Registered" }
80+ return JsonResponse (data )
4881# ...
4982
5083# # Update the `get_dealerships` view to render the index page with
0 commit comments