def post(cls): json_data = request.get_json() print(type(json_data)) user = UserModel.find_by_email(json_data['email']) if user: return {"Message": "User with this email is already register"}, 401 # personal_info = { # "username" : json_data["username"], # "password" : json_data["password"], # "email" : json_data["email"], # "role": json_data["role"], # "firstName": json_data["firstName"], # "lastName": json_data["lastName"] # } try: user_data = UserSchema().load(json_data) print(user_data) except ValidationError as err: return err.messages, 401 try: user_model = UserModel(**user_data) if user_model.role == "admin": user_model.isActivated = True user_model.insert_user() else: user_model.insert_user() except: return {"Message": "USER_INSERTION_ERROR"}, 401 return {"Message": "USER_REGISTRATION_SUCCESSFUL"}, 201
def put(cls, deviceId): json_data = request.get_json() device_data = DeviceModel.find_by_id(deviceId) user_data = UserModel.find_by_email(device_data.assignTo) device_audit = DeviceAuditModel.find_my_device(deviceId, user_data.id) if device_data and device_audit: # device_data.isAvailable = True device_data.status = "available" device_data.assignTo = "0" device_data.releaseDate = None device_audit.deallocateBy = json_data['admin_id'] device_audit.deallocateDate = str( date.today().strftime("%d/%m/%Y")) try: device_data.insert_device() device_audit.insert_device_audit() return {"Message": "DEVICE DE ALLOCATED"}, 201 except: return {"Message": "INTERNAL SERVER ERROR"}, 401 return {"MESSAGE": "INVALID REQUEST"}, 400
def post(cls): try: user_info = user_info_schema.load(request.get_json()) if UserModel.find_by_username(user_info.get("username", None)): return {"message": get_text('user_username_exists')}, 409 if UserModel.find_by_email(user_info.get("email", None)): return {"message": get_text('user_email_exists')}, 409 hashed_password = generate_password_hash(user_info["password"]) user_info["password"] = hashed_password new_user = UserModel(**user_info) user_id = new_user.save_to_db() confirmation = ConfirmationModel(user_id) confirmation.save_to_db() if user_id: token = confirmation.confirmation_id activation_link = f"{DOMAIN_NAME}/v1/user/activate?token={token}" try: SendInBlue.send_activation_email( name=new_user.name, email=new_user.email, activation_link=activation_link ) return {"message": get_text('user_activation_email_sent')}, 200 except SendInBlueError as err: print(err) new_user.delete_from_db() confirmation.delete_from_db() return {"message": get_text('user_registeration_error')}, 500 except ValidationError as error: return {"message": get_text('input_error_generic'), "info": error.messages}, 400 except Exception as ex: print(ex) confirmation.delete_from_db() new_user.delete_from_db() return {"message": get_text('server_error_generic')}, 500
def post(): try: data = User.parser.parse_args() if UserModel.find_by_email(data['email']): return BaseResponse.bad_request_response( 'This email already exists.', {}) elif UserModel.find_by_phone(data['phoneNumber']): return BaseResponse.bad_request_response( 'This phone number already exists.', {}) hash_password = UserModel.hash_password(data['password']) user = UserModel(role_id=data['roleId'], email=data['email'], password=hash_password, full_name=data['fullName'], last_name=data['lastName'], phone_number=data['phoneNumber'], profile_picture=data['profilePicture'], last_ip_connection=data['lastIPConnection'], created_at=None, updated_on=None, status=None) user.save_to_db() if user.lastIPConnection and DeviceModel.find_by_ip( user.lastIPConnection) is None: device = DeviceModel( user_id=user.id, ip=user.lastIPConnection, created_at=datetime.now().strftime('%Y-%m-%d %H:%M:%S')) device.save_to_db() return BaseResponse.created_response('User created successfully.', user.json(is_long=True)) except Exception as e: return BaseResponse.server_error_response(str(e))
def post(): try: data = Login.parser.parse_args() if data['email']: user = UserModel.find_by_email(data['email']) else: user = UserModel.find_by_phone(data['phoneNumber']) pass if data['lastIPConnection'] and DeviceModel.find_by_ip(data['lastIPConnection']) is None \ and user is not None: user.lastIPConnection = data['lastIPConnection'] if (data['lastIPConnection'] is not None) \ else user.lastIPConnection user.save_to_db() device = DeviceModel( user_id=user.id, ip=data['lastIPConnection'], created_at=datetime.now().strftime('%Y-%m-%d %H:%M:%S')) device.save_to_db() if user and user.check_password(data['password']): access_token = create_access_token( identity=user.json(is_long=False), fresh=True) refresh_token = create_refresh_token(identity=user.json( is_long=False)) return BaseResponse.ok_response( 'Login successfully.', { 'accessToken': access_token, 'refreshToken': refresh_token, 'user': user.json(is_long=False) }) return BaseResponse.bad_request_response('Incorrect credentials.', {}) except Exception as e: return BaseResponse.server_error_response(str(e))
def post(cls): json_data = request.get_json() email = json_data.get('email', None) if email is None: return { "message": get_text('reset_password_email_not_present') }, 400 try: user = UserModel.find_by_email(email) # if there is user with that email, # check if the account is confirmed or not if user: confirmation = user.last_confirmation if confirmation: # account not confirmed if not confirmation.confirmed: return { "message": get_text('reset_password_inactive_account') }, 400 # the account is confirmed # check if there is previous token prev_pw_reset = user.password_reset.first() if prev_pw_reset: prev_pw_reset.delete_from_db() # get new password reset hash password_reset = PasswordResetModel(user._id) password_reset.save_to_db() token = password_reset.password_reset_id pw_reset_link = f'{FRONTEND_DOMAIN_NAME}/reset_password?token={token}' # Send email to user SendInBlue.send_pw_reset_email(name=user.name, email=user.email, pw_reset_link=pw_reset_link) return { "message": get_text('reset_password_email_sent'), "token": token }, 200 # there is no confirmation linked to user's account return { "message": get_text('reset_password_inactive_account') }, 400 return {"message": get_text('reset_password_user_not_found')}, 404 except SendInBlueError as error: print(error) return { "message": get_text('reset_password_failed_to_send_email') }, 500 except Exception as ex: print(ex) return {"message": get_text('server_error_generic')}, 500