improved register endpoint, etc.
This commit is contained in:
@@ -22,11 +22,13 @@ from random import randint
|
||||
from flask_login import logout_user, login_user
|
||||
from typing import Iterable
|
||||
|
||||
from flask_restx import Resource, fields
|
||||
from flask_restx import Resource, fields, abort, inputs
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from werkzeug.routing import BuildError
|
||||
|
||||
from backend import db, app, jwt_extended
|
||||
from backend.api import auth_api_bp, auth_api_providers_ns, auth_api_register_ns
|
||||
from backend.api.models import user_model
|
||||
from backend.auth import AUTH_PROVIDERS, oidc_auth
|
||||
from backend.auth.oidc_config import PROVIDER_NAME
|
||||
from backend.models.user_model import User, Group, BlacklistToken
|
||||
@@ -53,15 +55,6 @@ class AuthProviders(Resource):
|
||||
return get_auth_providers()
|
||||
|
||||
|
||||
@auth_api_bp.route('/register', methods=('POST',))
|
||||
def register():
|
||||
data = request.get_json()
|
||||
user = User(**data)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
return jsonify(user.to_dict()), 201
|
||||
|
||||
|
||||
@auth_api_register_ns.route('/')
|
||||
@auth_api_register_ns.expect(auth_api_register_ns.model('RegisterModel', {
|
||||
'nickname': fields.String(required=False, description='The user\'s nickname'),
|
||||
@@ -69,12 +62,24 @@ def register():
|
||||
'last_name': fields.String(required=False, description='The user\'s last name'),
|
||||
'lang': fields.String(required=False, description='The user\'s preferred language'),
|
||||
'timezone': fields.String(required=False, description='The user\'s preferred timezone'),
|
||||
'email': fields.String(required=True, description='The user\'s e-mail address'),
|
||||
'email': fields.String(required=True, type=inputs.email(), description='The user\'s e-mail address'),
|
||||
'password': fields.String(required=False, description='The group\'s name')
|
||||
}))
|
||||
class AuthProviders(Resource):
|
||||
def get(self):
|
||||
return register()
|
||||
class Registration(Resource):
|
||||
@auth_api_register_ns.marshal_list_with(user_model)
|
||||
def post(self):
|
||||
print("in registration")
|
||||
data = request.get_json()
|
||||
try:
|
||||
user = User(**data)
|
||||
db.session.add(user)
|
||||
db.session.commit()
|
||||
pprint(user.to_dict())
|
||||
return user, 201
|
||||
except IntegrityError as e:
|
||||
abort(400, message=str(e).split('\n')[0].split(')')[1].strip())
|
||||
except AssertionError as e:
|
||||
abort(400, message=str(e))
|
||||
|
||||
|
||||
@auth_api_bp.route('/login', methods=('GET', 'POST',))
|
||||
|
||||
@@ -125,7 +125,7 @@ class RecorderList(Resource):
|
||||
return recorder
|
||||
except LrcException as e:
|
||||
logger.error(e)
|
||||
return api_recorder.abort(400, str(e))
|
||||
return api_recorder.abort(400, message=str(e))
|
||||
|
||||
|
||||
@api_recorder.route('/model/<int:id>')
|
||||
|
||||
@@ -128,4 +128,4 @@ class RoomList(Resource):
|
||||
return str(e.detail), 400
|
||||
except LrcException as e:
|
||||
logger.error(e)
|
||||
return api_room.abort(400, str(e))
|
||||
return api_room.abort(400, message=str(e))
|
||||
|
||||
Reference in New Issue
Block a user