Adiciona login ao usuario
This commit is contained in:
@@ -6,12 +6,10 @@ from controller.dispositivo_controller import dispositivo_bp
|
||||
from controller.leitura_controller import leitura_bp
|
||||
import os
|
||||
|
||||
# Variaveis dinamicas que sao usadas para definir qual a porta do servidor e o host do mesmo
|
||||
host = str(os.environ.get("HOST", "localhost"))
|
||||
port = int(os.environ.get("PORT", 5000))
|
||||
debug = str(os.environ.get("DEBUG", "true"))
|
||||
|
||||
# Variaveis dinamicas usadas para definir o Host do banco de dados assim conectando a banco de dados dedicado
|
||||
db_user = str(os.environ.get("POSTGRES_DB_KEY", "fauUser"))
|
||||
db_name = str(os.environ.get("POSTGRES_USER_KEY", "facu"))
|
||||
db_host = str(os.environ.get("POSTGRES_HOST_KEY", "127.0.0.1"))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from flask import Blueprint, request, jsonify
|
||||
from service.usuario_service import UsuarioService
|
||||
from model.usuario import EmailJaCadastrado, UsuarioNaoEncontrado
|
||||
from model.usuario import EmailJaCadastrado, UsuarioNaoEncontrado, SenhaInvalida
|
||||
|
||||
usuario_bp = Blueprint('usuario', __name__)
|
||||
|
||||
@@ -24,6 +24,26 @@ def registrar():
|
||||
return jsonify({"erro": "Email ja cadastrado"}), 409
|
||||
|
||||
|
||||
@usuario_bp.route('/auth/login', methods=['POST'])
|
||||
def login():
|
||||
dados = request.get_json()
|
||||
try:
|
||||
usuario = UsuarioService.instancia().login(
|
||||
email=dados['email'],
|
||||
senha=dados['senha']
|
||||
)
|
||||
return jsonify({
|
||||
"id": usuario.id,
|
||||
"nome": usuario.nome,
|
||||
"email": usuario.email,
|
||||
"token_api": usuario.token_api
|
||||
})
|
||||
except UsuarioNaoEncontrado:
|
||||
return jsonify({"erro": "Email nao encontrado"}), 404
|
||||
except SenhaInvalida:
|
||||
return jsonify({"erro": "Senha invalida"}), 401
|
||||
|
||||
|
||||
@usuario_bp.route('/auth/usuario/<int:id>', methods=['GET'])
|
||||
def buscar(id):
|
||||
try:
|
||||
|
||||
@@ -10,6 +10,10 @@ class EmailJaCadastrado(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class SenhaInvalida(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class Usuario(db.Model):
|
||||
__tablename__ = 'usuarios'
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from model.usuario import Usuario, UsuarioNaoEncontrado, EmailJaCadastrado
|
||||
from model.usuario import Usuario, UsuarioNaoEncontrado, EmailJaCadastrado, SenhaInvalida
|
||||
from dao.usuario_dao import UsuarioDao
|
||||
import bcrypt
|
||||
|
||||
@@ -32,3 +32,17 @@ class UsuarioService:
|
||||
if not usuario:
|
||||
raise UsuarioNaoEncontrado()
|
||||
return usuario
|
||||
|
||||
def login(self, email, senha):
|
||||
usuario = self.dao.buscar_por_email(email)
|
||||
if not usuario:
|
||||
raise UsuarioNaoEncontrado()
|
||||
|
||||
senha_correta = bcrypt.checkpw(
|
||||
senha.encode('utf-8'),
|
||||
usuario.senha_hash.encode('utf-8')
|
||||
)
|
||||
if not senha_correta:
|
||||
raise SenhaInvalida()
|
||||
|
||||
return usuario
|
||||
|
||||
Reference in New Issue
Block a user