def validate_invitation_token(invitation_type, token): max_age_seconds = 60 * 60 * 24 * current_app.config[ 'INVITATION_EXPIRATION_DAYS'] try: invited_user_id = check_token(token, current_app.config['SECRET_KEY'], current_app.config['DANGEROUS_SALT'], max_age_seconds) except SignatureExpired: errors = { 'invitation': 'Your invitation to GOV.UK Notify has expired. ' 'Please ask the person that invited you to send you another one' } raise InvalidRequest(errors, status_code=400) except BadData: errors = { 'invitation': 'Something’s wrong with this link. Make sure you’ve copied the whole thing.' } raise InvalidRequest(errors, status_code=400) if invitation_type == 'service': invited_user = get_invited_user_by_id(invited_user_id) return jsonify(data=invited_user_schema.dump(invited_user).data), 200 elif invitation_type == 'organisation': invited_user = dao_get_invited_organisation_user(invited_user_id) return jsonify(data=invited_user.serialize()), 200 else: raise InvalidRequest( "Unrecognised invitation type: {}".format(invitation_type))
def validate_invitation_token(invitation_type, token): max_age_seconds = 60 * 60 * 24 * current_app.config[ "INVITATION_EXPIRATION_DAYS"] try: invited_user_id = check_token( token, current_app.config["SECRET_KEY"], current_app.config["DANGEROUS_SALT"], max_age_seconds, ) except SignatureExpired: errors = {"invitation": "invitation expired"} raise InvalidRequest(errors, status_code=400) except BadData: errors = {"invitation": "bad invitation link"} raise InvalidRequest(errors, status_code=400) if invitation_type == "service": invited_user = get_invited_user_by_id(invited_user_id) return jsonify(data=invited_user_schema.dump(invited_user).data), 200 elif invitation_type == "organisation": invited_user = dao_get_invited_organisation_user(invited_user_id) return jsonify(data=invited_user.serialize()), 200 else: raise InvalidRequest( "Unrecognised invitation type: {}".format(invitation_type))
def test_dao_get_invited_organisation_user_returns_none(notify_db): with pytest.raises(expected_exception=SQLAlchemyError): dao_get_invited_organisation_user(uuid.uuid4())
def test_dao_get_invited_organisation_user(sample_invited_org_user): invited_org_user = dao_get_invited_organisation_user( sample_invited_org_user.id) assert invited_org_user == sample_invited_org_user