Added login logic
This commit is contained in:
@@ -22,15 +22,6 @@ class LoginService(BaseService):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def process_request(data):
|
def process_request(data):
|
||||||
"""
|
|
||||||
Process the Login request.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
data (dict): The request data.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
dict: A standardized response.
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
with db.session.begin():
|
with db.session.begin():
|
||||||
|
|
||||||
@@ -98,6 +89,74 @@ class LoginService(BaseService):
|
|||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
return ResponseHelper.internal_server_error()
|
return ResponseHelper.internal_server_error()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def login_user(username, password):
|
||||||
|
try:
|
||||||
|
with db.session.begin():
|
||||||
|
|
||||||
|
# validated_data = LoginService.validate_data(data, LoginSchema())
|
||||||
|
# username = validated_data.get('username')
|
||||||
|
# password = validated_data.get('password')
|
||||||
|
member = Members.get_member_by_username(username)
|
||||||
|
# pass22 = generate_password_hash(password)
|
||||||
|
# logger.info("Password generated = > {}".format(pass22) )
|
||||||
|
if not member:
|
||||||
|
invalid_data = {
|
||||||
|
"error_message": "invalid username or password",
|
||||||
|
"message_key": "invalid_username_or_password",
|
||||||
|
}
|
||||||
|
return ResponseHelper.success(data=invalid_data)
|
||||||
|
|
||||||
|
pass_check = check_password_hash(member.password, password)
|
||||||
|
logger.info("Password check: {}".format(pass_check))
|
||||||
|
if not member or not pass_check:
|
||||||
|
invalid_data = {
|
||||||
|
"error_message": "invalid username or password",
|
||||||
|
"message_key": "invalid_username_or_password",
|
||||||
|
}
|
||||||
|
return ResponseHelper.success(data=invalid_data)
|
||||||
|
|
||||||
|
user_data = {}
|
||||||
|
user_data["id"] = member.id,
|
||||||
|
user_data["member_id"]= member.id,
|
||||||
|
user_data["uid"] = str(member.uid),
|
||||||
|
|
||||||
|
user_token = jwt.encode(
|
||||||
|
{"user": user_data, 'exp' : datetime.datetime.utcnow() + datetime.timedelta(minutes=3330)},
|
||||||
|
Config.JWT_SECRET_KEY,
|
||||||
|
algorithm="HS256"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Simulate processing
|
||||||
|
response_data = {
|
||||||
|
"member_id": member.id,
|
||||||
|
"uid": str(member.uid),
|
||||||
|
"username": member.username,
|
||||||
|
"account_name": member.account_name,
|
||||||
|
"firstname":member.firstname,
|
||||||
|
"lastname": member.lastname,
|
||||||
|
"room": member.uid,
|
||||||
|
"token": user_token
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseHelper.success(data=response_data)
|
||||||
|
|
||||||
|
except ValidationError as err:
|
||||||
|
|
||||||
|
logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}")
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.unprocessable_entity(result_description="Validation exception")
|
||||||
|
|
||||||
|
except ValueError as err:
|
||||||
|
logger.error(f"{getattr(err, 'messages', str(err))}")
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.error(result_description=str(err))
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"An error occurred: {str(e)}", exc_info=True)
|
||||||
|
db.session.rollback()
|
||||||
|
return ResponseHelper.internal_server_error()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_loan_limits(customer_id):
|
def check_loan_limits(customer_id):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from app.api.schemas.register import RegisterSchema
|
|||||||
from app.api.schemas.register_verify import RegisterVerifySchema
|
from app.api.schemas.register_verify import RegisterVerifySchema
|
||||||
from app.api.schemas.register_complete import RegisterCompleteSchema
|
from app.api.schemas.register_complete import RegisterCompleteSchema
|
||||||
|
|
||||||
|
from app.api.services.login import LoginService
|
||||||
|
|
||||||
from flask_mail import Mail, Message
|
from flask_mail import Mail, Message
|
||||||
import smtplib
|
import smtplib
|
||||||
@@ -67,25 +68,25 @@ class RegisterService(BaseService):
|
|||||||
lastname = user['last_name']
|
lastname = user['last_name']
|
||||||
email = user['email']
|
email = user['email']
|
||||||
|
|
||||||
|
|
||||||
encrypted_pass = generate_password_hash(password)
|
encrypted_pass = generate_password_hash(password)
|
||||||
newAccount = Members.add_member(firstname, lastname, email, username,encrypted_pass, country)
|
newAccount = Members.add_member(firstname, lastname, email, username,encrypted_pass, country)
|
||||||
|
|
||||||
|
return LoginService.login_user(username,password)
|
||||||
|
|
||||||
country = {
|
# country = {
|
||||||
"last_update": datetime.datetime.utcnow(),
|
# "last_update": datetime.datetime.utcnow(),
|
||||||
"list": [
|
# "list": [
|
||||||
{"code": "US", "description": "United States"},
|
# {"code": "US", "description": "United States"},
|
||||||
{"code": "CA", "description": "Canada"},
|
# {"code": "CA", "description": "Canada"},
|
||||||
]
|
# ]
|
||||||
}
|
# }
|
||||||
|
#
|
||||||
response_data = {
|
# response_data = {
|
||||||
"user": data["user"],
|
# "user": data["user"],
|
||||||
"country": country,
|
# "country": country,
|
||||||
}
|
# }
|
||||||
|
#
|
||||||
return ResponseHelper.success(data=response_data)
|
# return ResponseHelper.success(data=response_data)
|
||||||
|
|
||||||
except ValidationError as err:
|
except ValidationError as err:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user