transcription-cost-usage-re.../backend/app/routes/auth_routes.py

32 lines
1.1 KiB
Python
Raw Normal View History

2025-06-09 11:13:05 +00:00
from flask_restx import Namespace, Resource, fields
from flask import request
from flask_jwt_extended import create_access_token
from app.db.models import UserModel
from app.docs.auth_models import auth_ns, signup_model
@auth_ns.route('/signup')
class SignUp(Resource):
@auth_ns.expect(signup_model)
def post(self):
data = request.get_json()
user_model = UserModel()
if user_model.find_by_email(data['email']):
return {'message': 'User already exists'}, 400
user_model.create_user(data['email'], data['password'])
return {'message': 'success'}, 201
@auth_ns.route('/login')
class Login(Resource):
@auth_ns.expect(signup_model)
def post(self):
data = request.get_json()
user_model = UserModel()
user = user_model.find_by_email(data['email'])
if not user or not user_model.verify_password(user['password'], data['password']):
return {'message': 'Invalid credentials'}, 401
access_token = create_access_token(identity=user['email'])
return {'access_token': access_token}, 200