53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
import pandas as pd
|
|
import requests
|
|
import Apikeys
|
|
|
|
MASTER = "~/Downloads/Anthology-Master-CSV-FirstChanges.csv"
|
|
BASEURL = "https://api.northpass.com/v2/people"
|
|
APIKEY = Apikeys.ANTHOLOGY
|
|
HEADERS = {
|
|
"accept": "*/*",
|
|
"X-Api-Key": APIKEY,
|
|
"content-type": "application/json",
|
|
}
|
|
df = pd.read_csv(MASTER)
|
|
df.dropna(how="all", axis=0, inplace=True)
|
|
COUNT = 0
|
|
|
|
for row in df.itertuples():
|
|
domain = row[1]
|
|
groups = row[2:]
|
|
# groups = list(groups)
|
|
tmplist = []
|
|
for group in groups:
|
|
group = str(group)
|
|
if "nan" not in group:
|
|
# Grab Group UUIDs
|
|
url = f"https://api.northpass.com/v2/groups?filter[name][eq]={group}"
|
|
response = requests.get(url, headers=HEADERS)
|
|
response = response.json()
|
|
data = response["data"]
|
|
for name in data:
|
|
id = name["id"]
|
|
tmplist.append(id)
|
|
rowdict = {domain: tmplist}
|
|
|
|
# Grab all people
|
|
personlist = []
|
|
COUNT += 1
|
|
url = BASEURL + f"?filter[email][cont]={domain}"
|
|
response = requests.get(url, headers=HEADERS)
|
|
response = response.json()
|
|
nextlink = response["links"]
|
|
|
|
for data in response["data"]:
|
|
person = data["id"]
|
|
personlist.append(person)
|
|
|
|
# if "next" not in nextlink:
|
|
# break
|
|
|
|
# Construct Payload for Bulk API
|
|
payload = {"payload": {"person_ids": personlist, "group_ids": tmplist}}
|
|
print(payload)
|