Pushed Walmart's ecommerce stuff to production and made the changes the client requested. Updated bulk_invite_and_props script for Chubb.

This commit is contained in:
Norm Rasmussen
2024-07-02 17:18:10 -04:00
parent b7af632306
commit 7312718822
4 changed files with 63 additions and 46 deletions

View File

@ -13,7 +13,7 @@ HEADERS = {
"X-Api-Key": APIKEY,
}
BASEURL = "https://api.northpass.com/v2/"
IMPORTFILE = "/Users/normrasmussen/Downloads/chubb-cisa-624.csv"
IMPORTFILE = "/Users/normrasmussen/Downloads/CISA-061724.csv"
def bulk_invite_and_group():
@ -30,39 +30,35 @@ def bulk_invite_and_group():
data = pd.read_csv(IMPORTFILE)
groups = data["Group"].unique()
groups = list(groups)
try:
for group in groups:
payload = ""
tmp_group = data[data.Group == group]
people = list(tmp_group["Email"])
group = str(tmp_group["Group"].unique())[2:-2]
print(f"Group --> {group} & Email Length --> {len(people)}")
url = f"{BASEURL}bulk/people"
if len(people) > 1500:
for chunk in range(0, len(people), 1500):
i = chunk
payload_1 = []
i_to_add = people[i : i + 1500]
for person in i_to_add:
miniload = {"email": person, "groups": group}
payload_1.append(miniload)
print(f"The long length {group} payload has {len(payload_1)}")
payload = {"data": {"attributes": {"people": payload_1}}}
response = requests.post(url, headers=HEADERS, json=payload)
print(f"Completed. Status code is {response.status_code}")
else:
for group in groups:
payload = ""
tmp_group = data[data.Group == group]
people = list(tmp_group["Email"])
group = str(tmp_group["Group"].unique())[2:-2]
print(f"Group --> {group} & Email Length --> {len(people)}")
url = f"{BASEURL}bulk/people"
if len(people) > 1500:
for chunk in range(0, len(people), 1500):
i = chunk
payload_1 = []
for person in people:
i_to_add = people[i : i + 1500]
for person in i_to_add:
miniload = {"email": person, "groups": group}
payload_1.append(miniload)
# print(f"The {group} payload has {len(payload_1)}")
print(f"The long length {group} payload has {len(payload_1)}")
payload = {"data": {"attributes": {"people": payload_1}}}
response = requests.post(url, headers=HEADERS, json=payload)
print(f"Completed. Status code is {response.status_code}")
print(response.text)
except:
pass
finally:
else:
payload_1 = []
for person in people:
miniload = {"email": person, "groups": group}
payload_1.append(miniload)
# print(f"The {group} payload has {len(payload_1)}")
payload = {"data": {"attributes": {"people": payload_1}}}
response = requests.post(url, headers=HEADERS, json=payload)
print(f"Completed. Status code is {response.status_code}")
print(response.text)
print("Running add props from func...")
time.sleep(3)
add_props_from_func(people, data)
@ -95,12 +91,14 @@ def add_props_from_func(people, data):
propresponse = requests.post(prop_url, json=payload, headers=HEADERS)
print(propresponse.status_code)
if propresponse.status_code != 200:
error_tupe = (learner_uud, learner_email, agency_name)
error_tupe = (learner_uuid, learner_email, agname)
errorlist.append(error_tupe)
else:
print(f"Looks like {learner_email} and {agency_name} was successful.")
except TypeError as e:
pass
print(f"Looks like {learner_email} and {agname} was successful.")
except ( TypeError,IndexError ) as e:
error_tupe = (0, learner_email, agency_name)
errorlist.append(error_tupe)
print(f"{e} has occurred with {learner_email}")
finally:
print(f"Error list: {errorlist}")