dbilayer_cassandra/reqhandlers/dbusers.py

74 lines
2.6 KiB
Python
Raw Normal View History

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)