mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 09:51:11 -05:00
Merge pull request #940 from GSA/notify-admin-1447
api to return service invite info
This commit is contained in:
@@ -223,3 +223,14 @@ def validate_service_invitation_token(token):
|
|||||||
|
|
||||||
invited_user = get_invited_user_by_id(invited_user_id)
|
invited_user = get_invited_user_by_id(invited_user_id)
|
||||||
return jsonify(data=invited_user_schema.dump(invited_user)), 200
|
return jsonify(data=invited_user_schema.dump(invited_user)), 200
|
||||||
|
|
||||||
|
|
||||||
|
@service_invite.route("/service/invite/redis/<redis_key>", methods=["GET"])
|
||||||
|
def get_service_invite_data(redis_key):
|
||||||
|
service_invite_data = redis_store.raw_get(redis_key)
|
||||||
|
# We can't log this because key may contain PII (email address)
|
||||||
|
if service_invite_data is None:
|
||||||
|
raise Exception("No service invite data")
|
||||||
|
else:
|
||||||
|
service_invite_data = service_invite_data.decode("utf8")
|
||||||
|
return jsonify(service_invite_data), 200
|
||||||
|
|||||||
@@ -398,3 +398,34 @@ def test_get_invited_user_404s_if_invite_doesnt_exist(
|
|||||||
_expected_status=404,
|
_expected_status=404,
|
||||||
)
|
)
|
||||||
assert json_resp["result"] == "error"
|
assert json_resp["result"] == "error"
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_service_invite_data_with_invite(admin_request, mocker):
|
||||||
|
redis_key = "service-invite-j.k@fake.gov"
|
||||||
|
expected_user_data = b'{"from_user_id": ["7480cdcf-fa31-42b8-a4bf-2cd4d7a9b4f4"], "service_id": "721b0aa6-2447-4bcd-91fc-26d576f2bbff", "permissions": ["manage_api_keys"], "folder_permissions": []}' # noqa
|
||||||
|
expected_status = 200
|
||||||
|
|
||||||
|
mocker.patch(
|
||||||
|
"app.service_invite.rest.redis_store.raw_get", return_value=expected_user_data
|
||||||
|
)
|
||||||
|
json_resp = json.loads(
|
||||||
|
admin_request.get(
|
||||||
|
"service_invite.get_service_invite_data",
|
||||||
|
redis_key=redis_key,
|
||||||
|
_expected_status=expected_status,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
assert json_resp["permissions"] == ["manage_api_keys"]
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_service_invite_data_without_invite(admin_request, mocker):
|
||||||
|
redis_key = "service-invite-j.k@fake.gov"
|
||||||
|
|
||||||
|
mocker.patch("app.service_invite.rest.redis_store.raw_get", return_value=None)
|
||||||
|
with pytest.raises(BaseException, match="No service invite data"):
|
||||||
|
json.loads(
|
||||||
|
admin_request.get(
|
||||||
|
"service_invite.get_service_invite_data",
|
||||||
|
redis_key=redis_key,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user