import requests from collections import Counter import pandas as pd basecsv = "/Users/normrasmussen/Documents/Northpass/Scripts/G2_Unenroll/g2mca_112122.csv" apiKey = "JRDpCGQ7vSRiva6t5OkWDr5eJ" #G2 def mainFunc(basecsv, apiKey): readData = pd.read_csv( basecsv, index_col=False, ) readData.loc[readData['Course Name'].isin([ 'G2 Profile Anatomy', 'Profile Performance & Lead Management', 'Review Tracking & Brand Building', 'The Review Rundown'])] extractedList = readData.loc[readData['Attempt Start'].isnull(),'Email'].tolist() fourOccs = Counter(extractedList) finalNames = [] for name, occurences in fourOccs.items(): if occurences == 4: finalNames.append(name) findUuids(finalNames, readData, apiKey) def findUuids(finalNames, readData, apiKey): emailUuid = [] uuidList = [] deactivateUuid = {} try: for name in finalNames: baseUrlname = "https://api.northpass.com/v2/people?filter[email][eq]=" name = name url = baseUrlname + f"{name}" headers = { "accept": "*/*", "x-api-key": apiKey, "content-type": "application/json", } response = requests.get(url, headers=headers) response = response.json() uuid = response["data"][0]["id"] uuidList.append(uuid) deactivateUuid.update({name: uuid}) emailUuid.append(deactivateUuid) except: print("An error occured") finally: print(deactivateUuid) removeFromGroup(uuidList, apiKey) def removeFromGroup(uuidList, apiKey): numRemoved = 0 badUuid = [] for uuid in uuidList: uuidList = [] url = f"https://api.northpass.com/v2/people/{uuid}/relationships/groups" headers = { "accept": "application/json", "content-type": "application/json", "X-Api-Key": apiKey } payload = {"data": [ { "id": "d78af2ad-a6c8-4016-90a4-fb00bcc67891", "type": "membership-groups" } ]} response = requests.delete(url, json=payload, headers=headers) status = response.status_code if response.status_code == 200: print(f"UserID {uuid} okay to be deleted.") numRemoved += 1 uuidList.append(uuid) else: print(f"Some other error {status} for {uuid}") badUuid.append(uuid) print(f"Complete! {numRemoved} people removed from group.") print("Bad UUIDS: ") print(badUuid) if __name__ == "__main__": mainFunc(basecsv, apiKey)