2023-04-03 17:17:27 +05:30
from flask import Blueprint , request , jsonify
from core . bll import bllengine
from flask_cors import cross_origin
from flask_jwt_extended import create_access_token , get_jwt , jwt_required
from reqhandlers . blocklist import BLOCKLIST
import datetime
from datetime import timedelta
2023-04-21 10:39:08 +05:30
import uuid
2023-04-03 17:17:27 +05:30
users = Blueprint ( ' users ' , __name__ )
@users.route ( ' /projects/reqtest ' )
def retest ( ) :
return " success "
# I Register User
@users.route ( ' /register ' , methods = [ ' POST ' ] )
@cross_origin ( )
@jwt_required ( optional = True )
def register ( ) :
2023-04-21 10:39:08 +05:30
uuid_number = uuid_number = uuid . uuid4 ( ) . hex
print ( " uuid number " , uuid_number )
print ( uuid_number )
req = request . json
print ( " values for insert " , req , uuid_number )
req [ ' requestdata ' ] [ ' id ' ] = uuid_number
2023-04-03 17:17:27 +05:30
resp = bllengine . performRegistration ( req )
return jsonify ( resp )
# II Login User
@users.route ( ' /login ' , methods = [ ' POST ' ] )
@cross_origin ( )
@jwt_required ( optional = True )
def login ( ) :
req = request . json
resp = bllengine . performLoginActivity ( req )
if ' user_details ' in resp :
try :
# expires=datetime.datetime.utcnow() + datetime.timedelta(days=1)
expires = datetime . timedelta ( days = 1 )
print ( expires )
token = create_access_token ( identity = resp [ ' user_details ' ] [ ' username ' ] , expires_delta = expires )
print ( " token generated successfully " , token )
resp [ ' jwt_token ' ] = token
return jsonify ( { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Login " , " responsesetto " : " UI " , " response " : resp } )
except :
return jsonify ( { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Login " , " responsesetto " : " UI " , " response " : " Error Ocuured " } )
else :
return jsonify ( { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Login " , " responsesetto " : " UI " , " response " : resp } )
# III Logout User
@users.route ( ' /logout ' , methods = [ ' POST ' ] )
@cross_origin ( )
@jwt_required ( )
def logout ( ) :
req = request . json
resp = { }
if isinstance ( req , dict ) :
print ( get_jwt ( ) )
jti = get_jwt ( ) [ ' jti ' ]
if ( jti not in BLOCKLIST ) :
BLOCKLIST . add ( jti )
print ( BLOCKLIST )
resp = { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Logout " , " responsesetto " : " UI " , " response " : { " message " : " User Loggedout Successfully " } }
else :
resp = { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Logout " , " responsesetto " : " UI " , " response " : { " message " : " User has been already loggedout or else not yet logged in " } }
else :
resp = { " responseid " : req [ ' requestid ' ] , " responsefor " : " User Logout " , " responsesetto " : " UI " , " response " : { " message " : " Error Encountered " } }
return jsonify ( resp )