Feat: adding login schema
This commit is contained in:
parent
19b7500bb6
commit
e5f86203ff
|
@ -1,7 +1,7 @@
|
||||||
from flask import jsonify, request
|
from flask import jsonify, request
|
||||||
|
from schemas import LoginSchema
|
||||||
from services import UserService
|
from services import UserService
|
||||||
from services import AuthService
|
from services import AuthService
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
class AuthController:
|
class AuthController:
|
||||||
|
@ -11,12 +11,14 @@ class AuthController:
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
data = request.get_json()
|
data = request.get_json()
|
||||||
response = self.auth_service.login(data)
|
dataSchema = LoginSchema(**data)
|
||||||
|
response = self.auth_service.login(dataSchema)
|
||||||
if response.success:
|
if response.success:
|
||||||
return jsonify(response.to_dict()), 200
|
return jsonify(response.to_dict()), 200
|
||||||
return jsonify(response.to_dict()), 400
|
return jsonify(response.to_dict()), 400
|
||||||
|
|
||||||
def register(self):
|
def register(self):
|
||||||
|
|
||||||
return jsonify({"message": "register"})
|
return jsonify({"message": "register"})
|
||||||
|
|
||||||
def logout(self):
|
def logout(self):
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
from .login_schema import LoginSchema
|
|
@ -0,0 +1,6 @@
|
||||||
|
from pydantic import BaseModel, EmailStr
|
||||||
|
|
||||||
|
|
||||||
|
class LoginSchema(BaseModel):
|
||||||
|
email: EmailStr
|
||||||
|
password: str
|
|
@ -1,3 +1,4 @@
|
||||||
|
from schemas import LoginSchema
|
||||||
from repositories import UserRepository
|
from repositories import UserRepository
|
||||||
from models import ApiResponse
|
from models import ApiResponse
|
||||||
|
|
||||||
|
@ -6,17 +7,15 @@ class AuthService:
|
||||||
def __init__(self, userRepository: UserRepository):
|
def __init__(self, userRepository: UserRepository):
|
||||||
self.user_repository = userRepository
|
self.user_repository = userRepository
|
||||||
|
|
||||||
def login(self, data):
|
def login(self, data: LoginSchema):
|
||||||
try:
|
try:
|
||||||
email = data.get("email")
|
|
||||||
password = data.get("password")
|
|
||||||
|
|
||||||
user_data = self.user_repository.get_user_by_email(email)
|
user_data = self.user_repository.get_user_by_email(data.email)
|
||||||
|
|
||||||
if user_data == None:
|
if user_data == None:
|
||||||
return ApiResponse(success=False, message="User not found", data=None)
|
return ApiResponse(success=False, message="User not found", data=None)
|
||||||
|
|
||||||
if user_data["password"] == password:
|
if user_data["password"] == data.password:
|
||||||
del user_data["password"]
|
del user_data["password"]
|
||||||
return ApiResponse(
|
return ApiResponse(
|
||||||
success=True, message="Login success", data=user_data
|
success=True, message="Login success", data=user_data
|
||||||
|
|
|
@ -5,3 +5,4 @@ python-dotenv==1.0.1
|
||||||
dependency-injector==4.46.0
|
dependency-injector==4.46.0
|
||||||
pytest==8.3.4
|
pytest==8.3.4
|
||||||
pydantic==2.10.6
|
pydantic==2.10.6
|
||||||
|
email-validator==2.2.0
|
Loading…
Reference in New Issue