def edit_user(user_id): user = User.query.get_or_404(user_id) user_schema = User.from_json(json.loads(request.data.decode('utf-8')), partial=True) if user_schema.errors: return {'errors': user_schema.errors}, 400 if 'group_id' in user_schema.data: group = Group.query.filter(Group.id == user_schema.data['group_id']).first() if not group: return {'errors': {'group': 'Group with this id does not exist'}}, 400 if 'email' in user_schema.data: email_duplicate_user = User.query.filter(User.email == user_schema.data['email']).first() if email_duplicate_user: return {'errors': {'email': 'User with this email is already exists'}}, 400 for field, value in user_schema.data.items(): if hasattr(user, field): setattr(user, field, value) db.session.commit() return user, 200
def add_user(): user_schema = User.from_json(json.loads(request.data.decode('utf-8'))) if user_schema.errors: return {'errors': user_schema.errors}, 400 email_duplicate_user = User.query.filter(User.email == user_schema.data['email']).first() if email_duplicate_user: return {'errors': {'email': 'User with this email is already exists'}}, 400 group = Group(name=str(uuid.uuid4())) db.session.add(group) db.session.commit() user = User(**user_schema.data) user.group = group db.session.add(user) db.session.commit() return user, 201