Feat: adding login schema

This commit is contained in:
akhdanre 2025-02-26 14:06:29 +07:00
parent 19b7500bb6
commit e5f86203ff
5 changed files with 17 additions and 8 deletions

View File

@ -1,7 +1,7 @@
from flask import jsonify, request
from schemas import LoginSchema
from services import UserService
from services import AuthService
import sys
class AuthController:
@ -11,12 +11,14 @@ class AuthController:
def login(self):
data = request.get_json()
response = self.auth_service.login(data)
dataSchema = LoginSchema(**data)
response = self.auth_service.login(dataSchema)
if response.success:
return jsonify(response.to_dict()), 200
return jsonify(response.to_dict()), 400
def register(self):
return jsonify({"message": "register"})
def logout(self):

1
app/schemas/__init__.py Normal file
View File

@ -0,0 +1 @@
from .login_schema import LoginSchema

View File

@ -0,0 +1,6 @@
from pydantic import BaseModel, EmailStr
class LoginSchema(BaseModel):
email: EmailStr
password: str

View File

@ -1,3 +1,4 @@
from schemas import LoginSchema
from repositories import UserRepository
from models import ApiResponse
@ -6,17 +7,15 @@ class AuthService:
def __init__(self, userRepository: UserRepository):
self.user_repository = userRepository
def login(self, data):
def login(self, data: LoginSchema):
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:
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"]
return ApiResponse(
success=True, message="Login success", data=user_data

View File

@ -4,4 +4,5 @@ Flask-PyMongo==3.0.1
python-dotenv==1.0.1
dependency-injector==4.46.0
pytest==8.3.4
pydantic==2.10.6
pydantic==2.10.6
email-validator==2.2.0