def update_user(user_id): """ Update an user account. """ user = User.get(user_id) if not user: return api_error('User not found', 404) form_kwargs = dict( validate_unique_email=user.email != request.json.get('email') ) if 'password' in request.json: form = FullUserForm(**form_kwargs) else: form = BaseUserForm(**form_kwargs) if not form.validate_on_submit(): return api_error(form.errors) services = [] if form.role.data == 'provider': user.services = Service.get_by_ids(form.services.data) user.email = form.email.data if 'password' in request.json: user.set_password(form.password.data) user.name = form.name.data user.organization = form.organization.data user.phone_number = form.phone_number.data user.role = form.role.data user.save() return jsonify(user)
def create_user(): """ Create an user account. """ form = FullUserForm() if not form.validate_on_submit(): return api_error(form.errors) services = [] if form.role.data == 'provider': services = Service.get_by_ids(form.services.data) user = User( name=form.name.data, organization=form.organization.data, email=form.email.data, password=form.password.data, phone_number=form.phone_number.data, role=form.role.data, services=services ) user.save() return jsonify(user)