2023-12-12 17:22:13 -05:00
|
|
|
import requests
|
2023-12-15 16:31:01 -05:00
|
|
|
import json
|
2023-12-13 16:26:32 -05:00
|
|
|
import numpy as np
|
2023-12-12 17:22:13 -05:00
|
|
|
import pandas as pd
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
import Apikeys
|
|
|
|
|
import os
|
|
|
|
|
import ts_lstdict
|
|
|
|
|
|
2023-12-13 16:26:32 -05:00
|
|
|
BASEFILE = "/Users/normrasmussen/Downloads/ts-completions.csv"
|
|
|
|
|
API_KEY = Apikeys.TALKSPACE_1099
|
|
|
|
|
UUID_URL = "https://api.northpass.com/v2/people?filter[email][eq]="
|
|
|
|
|
PROP_URL = "https://api.northpass.com/v2/properties/people/"
|
|
|
|
|
HEADERS = {
|
2023-12-12 17:22:13 -05:00
|
|
|
"accept": "*/*",
|
2023-12-13 16:26:32 -05:00
|
|
|
"x-api-key": API_KEY,
|
2023-12-12 17:22:13 -05:00
|
|
|
"content-type": "application/json",
|
|
|
|
|
}
|
|
|
|
|
LISTDICT = ts_lstdict.LISTDICT
|
|
|
|
|
|
|
|
|
|
|
2023-12-13 16:26:32 -05:00
|
|
|
def load_file():
|
2023-12-12 17:22:13 -05:00
|
|
|
dict_list = []
|
|
|
|
|
row_dict = {}
|
2023-12-13 16:26:32 -05:00
|
|
|
file = Path(BASEFILE)
|
|
|
|
|
completions = pd.read_csv(file)
|
2023-12-12 17:22:13 -05:00
|
|
|
try:
|
2023-12-13 16:26:32 -05:00
|
|
|
if os.path.isfile(file):
|
|
|
|
|
print(f"File found! Importing {file}")
|
2023-12-12 17:22:13 -05:00
|
|
|
for email in completions.itertuples():
|
|
|
|
|
row_num = email[0]
|
|
|
|
|
name = email[1]
|
|
|
|
|
email = email[3]
|
|
|
|
|
row_dict = {
|
|
|
|
|
"row_num": row_num,
|
|
|
|
|
"name": name,
|
|
|
|
|
"userid": "",
|
|
|
|
|
"email": email,
|
|
|
|
|
}
|
|
|
|
|
dict_list.append(row_dict)
|
|
|
|
|
print(len(dict_list))
|
|
|
|
|
tempdf = pd.DataFrame(dict_list)
|
|
|
|
|
tempdf.drop_duplicates(subset=["name"], keep="first", inplace=True)
|
|
|
|
|
dict_list = tempdf.to_dict("records")
|
|
|
|
|
print(len(dict_list))
|
|
|
|
|
except KeyError as e:
|
|
|
|
|
print(f"{e} Error")
|
|
|
|
|
finally:
|
2023-12-15 16:31:01 -05:00
|
|
|
make_calls(dict_list, completions)
|
2023-12-12 17:22:13 -05:00
|
|
|
|
|
|
|
|
|
2023-12-15 16:31:01 -05:00
|
|
|
def make_calls(dict_list, completions):
|
2023-12-12 17:22:13 -05:00
|
|
|
final_list = []
|
|
|
|
|
for row_dict in dict_list:
|
|
|
|
|
name = row_dict["name"]
|
2023-12-13 16:26:32 -05:00
|
|
|
url = UUID_URL + f"{row_dict['email']}"
|
|
|
|
|
response = requests.get(url, headers=HEADERS)
|
2023-12-12 17:22:13 -05:00
|
|
|
print(f"running api call for {name}")
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
response = response.json()
|
|
|
|
|
try:
|
|
|
|
|
uuid = response["data"][0]["id"]
|
2023-12-13 16:26:32 -05:00
|
|
|
url2 = PROP_URL + f"{uuid}"
|
|
|
|
|
response = requests.get(url2, headers=HEADERS)
|
|
|
|
|
try:
|
|
|
|
|
data = response.json()
|
|
|
|
|
userid = data["data"]["attributes"]["properties"]["user_id"]
|
|
|
|
|
row_dict["userid"] = userid
|
2023-12-15 16:31:01 -05:00
|
|
|
except Exception:
|
|
|
|
|
pass
|
2023-12-13 16:26:32 -05:00
|
|
|
finally:
|
|
|
|
|
pass
|
2023-12-12 17:22:13 -05:00
|
|
|
except IndexError as e:
|
|
|
|
|
print(f"{e} Second error!")
|
2023-12-15 16:31:01 -05:00
|
|
|
pass
|
2023-12-12 17:22:13 -05:00
|
|
|
finally:
|
|
|
|
|
pass
|
|
|
|
|
if row_dict["userid"] is None:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
final_list.append(row_dict)
|
|
|
|
|
print(len(final_list))
|
2023-12-15 16:31:01 -05:00
|
|
|
add_to_csv(final_list, completions)
|
2023-12-12 17:22:13 -05:00
|
|
|
|
2023-12-13 16:26:32 -05:00
|
|
|
|
2023-12-15 16:31:01 -05:00
|
|
|
def add_to_csv(final_list, completions):
|
2023-12-13 16:26:32 -05:00
|
|
|
# completions = pd.read_csv(BASEFILE)
|
2023-12-15 16:31:01 -05:00
|
|
|
completions["user_id"] = ""
|
2023-12-13 16:26:32 -05:00
|
|
|
for info in final_list:
|
2023-12-12 17:22:13 -05:00
|
|
|
row = info["name"]
|
2023-12-13 16:26:32 -05:00
|
|
|
email = info["email"]
|
2023-12-12 17:22:13 -05:00
|
|
|
pid = info["userid"]
|
2023-12-15 16:31:01 -05:00
|
|
|
completions.loc[completions["email"] == email, "user_id"] = pid
|
2023-12-13 16:26:32 -05:00
|
|
|
# completions['User ID'] = np.where(completions['email'] == email, pid, None)
|
2023-12-12 17:22:13 -05:00
|
|
|
print(completions)
|
|
|
|
|
completions.to_csv(
|
2023-12-13 16:26:32 -05:00
|
|
|
"/Users/normrasmussen/Downloads/Talkspace1099-Completions-All-IDS.csv",
|
|
|
|
|
)
|
2023-12-12 17:22:13 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2023-12-13 16:26:32 -05:00
|
|
|
load_file()
|
|
|
|
|
# add_to_csv()
|