Skip to content
Snippets Groups Projects
Commit b1985c08 authored by Ethan Clay (Student)'s avatar Ethan Clay (Student)
Browse files

Add create user endpoint

parent 9a4d8065
Branches
No related tags found
No related merge requests found
......@@ -22,3 +22,22 @@ def get_user_by_id(id):
except Exception as e:
return jsonify({'error': str(e)}), 500
@bp.route('/user/create', methods=['GET'])
def create_user():
try:
result = User.create_user('ethan_root', 'ethan2.clay@live.uwe.ac.uk', 'password1234', 1)
if result is None:
return jsonify({'error': 'User not found'}), 404
user_data = {
'id': result.user_id,
'username': result.username,
'email': result.email
}
return jsonify(user_data), 200
#If something falls over throw nice error for debugging, will change for admin only users to see errors otherwise throw generic 500
except Exception as e:
return jsonify({'error': str(e)}), 500
......@@ -6,12 +6,16 @@ class User(db.Model):
__tablename__ = 'users'
user_id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(150), nullable=False, unique=True)
email = db.Column(db.String(150), nullable=False, unique=True)
username = db.Column(db.String(255), nullable=False, unique=True)
email = db.Column(db.String(255), nullable=False, unique=True)
password = db.Column(db.String(255), nullable=False)
role_id = db.Column(db.SmallInteger(), nullable=False)
api_token = db.Column(db.String(255), nullable=True, unique=True)
token_expiry = db.Column(db.DateTime(), nullable=True)
@classmethod
def create_user(cls, username, email):
new_user = cls(username=username, email=email)
def create_user(cls, username, email, password, role_id):
new_user = cls(username=username, email=email, password=password, role_id=role_id)
db.session.add(new_user)
db.session.commit()
return new_user
......
......@@ -24,6 +24,6 @@ def upgrade():
sa.Column('email', sa.String(255), nullable=False, unique=True),
sa.Column('password', sa.String(255), nullable=False),
sa.Column('role_id', sa.SmallInteger(), nullable=False, server_default='1'), #Standard user permission level
sa.Column('api_token', sa.String(255), nullable=True),
sa.Column('api_token', sa.String(255), nullable=True, unique=True),
sa.Column('token_expiry', sa.DateTime(), nullable=True)
)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment