Getting all the needed data in place.

Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
This commit is contained in:
Cliff Hill
2024-11-06 14:30:28 -05:00
parent d798d3695e
commit f363a8e184
2 changed files with 21 additions and 19 deletions

View File

@@ -1,4 +1,3 @@
import base64
import json
import uuid
from datetime import datetime, timedelta
@@ -171,15 +170,8 @@ def set_up_your_profile():
login_gov_error = request.args.get("error")
invite_data = json.loads(redis_client.get(f"invitedata-{state}"))
user_email = redis_client.get(f"user_email-{state}").decode("utf8")
user_uuid = redis_client.get(f"user_uuid-{state}").decode("utf8")
# invite_data = json.loads(redis_client.get(f"invitedata-{state}"))
# user_email = redis_client.get(f"user_email-{state}").decode("utf8")
# user_uuid = redis_client.get(f"user_uuid-{state}").decode("utf8")
# invited_user_email_address = redis_client.get(
# f"invited_user_email_address-{state}"
# ).decode("utf8")
user_email = redis_client.get(f"user_email-{state}")
user_uuid = redis_client.get(f"user_uuid-{state}")
if user_email is None or user_uuid is None: # invite path
access_token = sign_in._get_access_token(code)
@@ -189,11 +181,10 @@ def set_up_your_profile():
debug_msg(
f"Got the user_email {user_email} and user_uuid {user_uuid} from login.gov"
)
# invite_data = state.encode("utf8")
# invite_data = base64.b64decode(invite_data)
# invite_data = json.loads(invite_data)
invite_data = redis_client.get(f"invitedata-{state}")
invite_data = json.loads(invite_data)
debug_msg(f"final state {invite_data}")
invited_user_id = invite_data["invited_user_id"]
invited_user_id = invite_data["user_id"]
invited_user_email_address = get_invited_user_email_address(invited_user_id)
debug_msg(f"email address from the invite_date is {invited_user_email_address}")
check_invited_user_email_address_matches_expected(

View File

@@ -55,15 +55,26 @@ class InviteApiClient(NotifyAdminAPIClient):
nonce_key = f"login-nonce-{unquote(nonce)}"
redis_client.set(nonce_key, nonce) # save the nonce to redis.
invite_data_key = f"invitedata-{state}"
redis_invite_data = json.dumps(data)
redis_client.set(invite_data_key, redis_invite_data)
data["nonce"] = nonce # This is passed to api for the invite url.
data["state"] = state # This is passed to api for the invite url.
resp = self.post(url=f"/service/{service_id}/invite", data=data)
return resp["data"]
resp_data = resp["data"]
invite_data_key = f"invitedata-{unquote(state)}"
remap_keys = {
"service": "service_id",
"from_user": "from_user_id",
"id": "user_id",
}
redis_invite_data = {
remap_keys[key] if key in remap_keys else key: value
for key, value in resp_data.items()
}
redis_invite_data = json.dumps(redis_invite_data)
redis_client.set(invite_data_key, redis_invite_data)
return resp_data
def get_invites_for_service(self, service_id):
return self.get(f"/service/{service_id}/invite")["data"]