def post(self): body = request.json try: # find user by username user = UserModel.query.filter_by(phone=body['phone']).first() if not user: return self.api_response(error='account_not_existed', http_code=400) user = user_schema.dump(user).data if not user['activate']: return self.api_response(error='account_inactivate', http_code=400) # check password if not UserModel._check_password(pw_hash=user['password'], pw_raw=body['password']): return self.api_response(error='wrong_password', http_code=400) token = generate_token(user) return self.api_response(data={'user': user, 'token': token}) except ValueError as err: _logger.error(err) return self.api_response(error=str(err), http_code=400) except Exception as err: return self.api_response(http_code=500)