Supplier migration script to move learners from US academy, Mexico Group into MX academy

This commit is contained in:
Norm Rasmussen
2025-10-08 09:45:09 -04:00
parent 6ac58515d0
commit 3485b6ffc5
3 changed files with 23 additions and 41 deletions

View File

@ -0,0 +1,5 @@
NORMSANDBOX = "SlpQlju219WnWogn94dQUT6Yt"
SPARKPROD = "6hUfJdAartHTHhHc0WIRZYPWe"
LUMINATE_US = "p5fidpuedHaOlPnd8EcpxzQMG"
SUPPLIERUSPROD = "DtRH9m4r0zMbJEx1yWBGKlObi"
SUPPLIERMXPROD = "zHIVw9dMzsNJLtFdqRXsJHGv3"

View File

@ -1,57 +1,34 @@
import requests import requests
import pprint import pprint
import pandas as pd import pandas as pd
import Apikeys import WALMART_API_KEYS
pp = pprint.PrettyPrinter(indent=4) pp = pprint.PrettyPrinter(indent=4)
APIKEY = Apikeys.SUPPLIER APIKEY = WALMART_API_KEYS.SUPPLIERMXPROD
HEADERS = { HEADERS = {
"accept": "application/json", "accept": "application/json",
"X-Api-Key": APIKEY, "X-Api-Key": APIKEY,
} }
BASEURL = "https://api.northpass.com/v2/" BASEURL = "https://api2.northpass.com/v2/"
IMPORTFILE = "/Users/normrasmussen/Downloads/supplierus-crece-for-mx-import.csv" IMPORTFILE = "/Users/normrasmussen/Downloads/supplierus-crece-for-mx-import.csv"
def main(): def main():
print(APIKEY)
data = pd.read_csv(IMPORTFILE) data = pd.read_csv(IMPORTFILE)
groups = data["Email"].unique() emails = data["email"].unique()
groups = list(groups) emails = list(emails)
print("Here are all groups within the CSV:") url = f"{BASEURL}bulk/people"
print(groups) payload_1 = []
print(" ") for person in emails:
for group in groups: miniload = {"email": person, "groups": "All Users"}
payload = "" miniload2 = {"email": person, "groups": "Crece Con Walmart"}
print(group) payload_1.append(miniload2)
tmp_group = data[data.Group == group] payload_1.append(miniload)
people = list(tmp_group["Email"]) payload = {"data": {"attributes": {"people": payload_1}}}
group = str(tmp_group["Group"].unique())[2:-2] print(payload)
print(f"Group --> {group} ... Amount of People --> {len(people)}") response = requests.post(url, headers=HEADERS, json=payload)
url = f"{BASEURL}bulk/people" print(f"Completed. Status code is {response.status_code}")
if len(people) > 1500: print(response.text)
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:
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, group)
if __name__ == "__main__": if __name__ == "__main__":