Skip to content

Return actual response from the identity map endpoint #55

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion uid2_client/identity_map_client.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import base64
import datetime as dt
import json
import time
from datetime import timezone

from .identity_buckets_response import IdentityBucketsResponse
Expand Down Expand Up @@ -37,9 +38,12 @@ def __init__(self, base_url, api_key, client_secret):
def generate_identity_map(self, identity_map_input):
req, nonce = make_v2_request(self._client_secret, dt.datetime.now(tz=timezone.utc),
identity_map_input.get_identity_map_input_as_json_string().encode())
start_time = time.time()
resp = post(self._base_url, '/v2/identity/map', headers=auth_headers(self._api_key), data=req)
resp_body = parse_v2_response(self._client_secret, resp.read(), nonce)
return IdentityMapResponse(resp_body, identity_map_input)
end_time = time.time()
elapsed_time = end_time - start_time
return IdentityMapResponse(resp_body, identity_map_input, elapsed_time)

def get_identity_buckets(self, since_timestamp):
req, nonce = make_v2_request(self._client_secret, dt.datetime.now(tz=timezone.utc),
Expand Down
16 changes: 15 additions & 1 deletion uid2_client/identity_map_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@


class IdentityMapResponse:
def __init__(self, response, identity_map_input):
def __init__(self, response, identity_map_input, elapsed_time=None):
self._mapped_identities = {}
self._unmapped_identities = {}
self._response = response
self._elapsed_time = None
response_json = json.loads(response)
self._status = response_json["status"]

if elapsed_time is not None:
self._elapsed_time = elapsed_time

if not self.is_success():
raise ValueError("Got unexpected identity map status: " + self._status)

Expand Down Expand Up @@ -44,6 +49,15 @@ def unmapped_identities(self):
@property
def status(self):
return self._status

@property
def elapsed_time(self):
return self._elapsed_time


@property
def response(self):
return self._response


class MappedIdentity:
Expand Down