Had to change Sandata's script to grab the groups first and then grab people - going with people first was taking way too long. Updated some notes, worked on Luminate's fiveserv integration.
This commit is contained in:
@ -11,6 +11,51 @@ APIKEY = Apikeys.SANDATA
|
||||
HEADERS = {"accept": "application/json", "X-Api-Key": APIKEY}
|
||||
PERSON_GROUPS = []
|
||||
PPL_DELETIONS = []
|
||||
GROUPS_LIST = []
|
||||
|
||||
def get_groups():
|
||||
count = 1
|
||||
while True:
|
||||
url = f"{BASEURL}/groups?limit=100&page={count}"
|
||||
resp = requests.get(url, headers=HEADERS)
|
||||
json = resp.json()
|
||||
nextlink = json["links"]
|
||||
count += 1
|
||||
|
||||
for data in json["data"]:
|
||||
group_name = data["attributes"]["name"]
|
||||
members = data["attributes"]["memberships_count"]
|
||||
id = data["id"]
|
||||
if "ST - OH" in group_name or "ST - CA" in group_name:
|
||||
pass
|
||||
else:
|
||||
if members > 0:
|
||||
grouple = (id, group_name, members)
|
||||
print(grouple)
|
||||
GROUPS_LIST.append(grouple)
|
||||
|
||||
if "next" not in nextlink:
|
||||
break
|
||||
|
||||
get_ppl_from_groups(GROUPS_LIST)
|
||||
|
||||
def get_ppl_from_groups(GROUPS_LIST):
|
||||
for single_group in GROUPS_LIST:
|
||||
print(single_group)
|
||||
group_count = 1
|
||||
while True:
|
||||
group_url = f"{BASEURL}/groups/{single_group[0]}/memberships?limit=100&page={group_count}"
|
||||
group_resp = requests.get(group_url, headers=HEADERS)
|
||||
groupson = group_resp.json()
|
||||
group_count += 1
|
||||
nextlink = groupson["links"]
|
||||
|
||||
for data in groupson["data"]:
|
||||
id = data["relationships"]["person"]["data"]["id"]
|
||||
print(id)
|
||||
|
||||
if "next" not in nextlink:
|
||||
break
|
||||
|
||||
|
||||
def get_people():
|
||||
@ -35,15 +80,30 @@ def get_people():
|
||||
uuid = group["id"]
|
||||
group_url = f"https://api.northpass.com/v2/groups/{uuid}"
|
||||
response = requests.get(group_url, headers=HEADERS)
|
||||
group_resp = response.json()
|
||||
try:
|
||||
group_resp = response.json()
|
||||
|
||||
group_name = group_resp["data"]["attributes"]["name"]
|
||||
# print(email, group_name)
|
||||
if "- OH" not in group_name or "- CA" not in group_name:
|
||||
PPL_DELETIONS.append(id)
|
||||
print(email, group_name)
|
||||
group_name = group_resp["data"]["attributes"]["name"]
|
||||
# print(email, group_name)
|
||||
if "ST - OH" in group_name or "ST - CA" in group_name:
|
||||
pass
|
||||
else:
|
||||
PPL_DELETIONS.append(id)
|
||||
print(email, group_name)
|
||||
|
||||
PERSON_GROUPS.append((id, email, group_name))
|
||||
PERSON_GROUPS.append((id, email, group_name))
|
||||
except JSONDecodeError as e:
|
||||
print(f"There was a JSON Error --> {e}")
|
||||
dataerror = df.from_records(PERSON_GROUPS)
|
||||
dataerror.to_csv('~/Downloads/Sandata-err-all-ppl')
|
||||
print(dataerror)
|
||||
print(len(PERSON_GROUPS))
|
||||
|
||||
datadelerr = df.from_records(PPL_DELETIONS)
|
||||
datadelerr.to_csv('~/Downloads/Sandata-err-ppl-to-delete')
|
||||
pass
|
||||
finally:
|
||||
pass
|
||||
|
||||
else:
|
||||
PERSON_GROUPS.append((id, email, "No Group"))
|
||||
@ -52,9 +112,13 @@ def get_people():
|
||||
break
|
||||
|
||||
dataframe = df.from_records(PERSON_GROUPS)
|
||||
dataframe.to_csv('~/Downloads/Sandata-all-ppl')
|
||||
print(dataframe)
|
||||
print(len(PERSON_GROUPS))
|
||||
|
||||
datadel = df.from_records(PPL_DELETIONS)
|
||||
datadel.to_csv('~/Downloads/Sandata-ppl-to-delete')
|
||||
|
||||
|
||||
# def parse_groups(id, grouplist):
|
||||
# for uuid in grouplist:
|
||||
@ -66,4 +130,4 @@ payload = { "payload": ["asd", "asd", "asd"] }
|
||||
"""
|
||||
|
||||
if __name__ == "__main__":
|
||||
get_people()
|
||||
get_groups()
|
||||
|
||||
BIN
Scripts/Walmart/PDFs/Driver Support options_05.09.2024.pdf
Normal file
BIN
Scripts/Walmart/PDFs/Driver Support options_05.09.2024.pdf
Normal file
Binary file not shown.
@ -8,7 +8,7 @@ const apiKey = "6hUfJdAartHTHhHc0WIRZYPWe"
|
||||
// Luminate Production ^
|
||||
const uid = "/\?uid\=7beg87y4-fh24-4929-3rt5-24kdn87s5241";
|
||||
const groupIds = [
|
||||
'fbadcf2b-db4a-4342-b1a7-15fc357e6443',
|
||||
'bcab9f82-4bac-4903-a054-aabae5f0a347'
|
||||
]
|
||||
|
||||
const getAllGroups = async (num) => {
|
||||
|
||||
Reference in New Issue
Block a user