Added login logic
This commit is contained in:
@@ -22,15 +22,6 @@ class LoginService(BaseService):
|
||||
|
||||
@staticmethod
|
||||
def process_request(data):
|
||||
"""
|
||||
Process the Login request.
|
||||
|
||||
Args:
|
||||
data (dict): The request data.
|
||||
|
||||
Returns:
|
||||
dict: A standardized response.
|
||||
"""
|
||||
try:
|
||||
with db.session.begin():
|
||||
|
||||
@@ -98,6 +89,74 @@ class LoginService(BaseService):
|
||||
db.session.rollback()
|
||||
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
|
||||
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_complete import RegisterCompleteSchema
|
||||
|
||||
from app.api.services.login import LoginService
|
||||
|
||||
from flask_mail import Mail, Message
|
||||
import smtplib
|
||||
@@ -67,25 +68,25 @@ class RegisterService(BaseService):
|
||||
lastname = user['last_name']
|
||||
email = user['email']
|
||||
|
||||
|
||||
encrypted_pass = generate_password_hash(password)
|
||||
newAccount = Members.add_member(firstname, lastname, email, username,encrypted_pass, country)
|
||||
|
||||
return LoginService.login_user(username,password)
|
||||
|
||||
country = {
|
||||
"last_update": datetime.datetime.utcnow(),
|
||||
"list": [
|
||||
{"code": "US", "description": "United States"},
|
||||
{"code": "CA", "description": "Canada"},
|
||||
]
|
||||
}
|
||||
|
||||
response_data = {
|
||||
"user": data["user"],
|
||||
"country": country,
|
||||
}
|
||||
|
||||
return ResponseHelper.success(data=response_data)
|
||||
# country = {
|
||||
# "last_update": datetime.datetime.utcnow(),
|
||||
# "list": [
|
||||
# {"code": "US", "description": "United States"},
|
||||
# {"code": "CA", "description": "Canada"},
|
||||
# ]
|
||||
# }
|
||||
#
|
||||
# response_data = {
|
||||
# "user": data["user"],
|
||||
# "country": country,
|
||||
# }
|
||||
#
|
||||
# return ResponseHelper.success(data=response_data)
|
||||
|
||||
except ValidationError as err:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user