Cin7 Partners instance downloaded. Crossed off a bunch of todos. Finished Anthology's groups to courses extract script.
This commit is contained in:
@ -2,8 +2,9 @@ import Apikeys
|
||||
import requests
|
||||
import pprint
|
||||
import csv
|
||||
import pandas as pd
|
||||
|
||||
pp= pprint.PrettyPrinter(indent=4)
|
||||
pp = pprint.PrettyPrinter(indent=4)
|
||||
APIKEY = Apikeys.ANTHOLOGY
|
||||
HEADERS = {
|
||||
"accept": "application/json",
|
||||
@ -11,66 +12,71 @@ HEADERS = {
|
||||
}
|
||||
BASEURL = "https://api.northpass.com/v2/"
|
||||
GROUPS = [
|
||||
"Accreditation",
|
||||
"Anthology 101",
|
||||
"Baseline",
|
||||
"Course Evaluations",
|
||||
"Engage",
|
||||
"Evaluate",
|
||||
"Finance & HCM",
|
||||
"Learn",
|
||||
"Portfolio",
|
||||
"Power BI",
|
||||
"Raise",
|
||||
"Reach",
|
||||
"Student",
|
||||
"Accreditation",
|
||||
"Anthology 101",
|
||||
"Baseline",
|
||||
"Course Evaluations",
|
||||
"Engage",
|
||||
"Evaluate",
|
||||
"Finance & HCM",
|
||||
"Learn",
|
||||
"Portfolio",
|
||||
"Power BI",
|
||||
"Raise",
|
||||
"Reach",
|
||||
"Student",
|
||||
]
|
||||
|
||||
|
||||
def group_ids():
|
||||
"""
|
||||
Get the group Ids from a list of named groups.
|
||||
"""
|
||||
url = "groups"
|
||||
df = pd.DataFrame()
|
||||
count = 0
|
||||
courses = []
|
||||
ids = []
|
||||
for group in GROUPS:
|
||||
filter = f"?filter[name][cont]={group} - ("
|
||||
urlreq = f"{BASEURL}{url}{filter}"
|
||||
response = requests.get(urlreq, headers=HEADERS)
|
||||
response = response.json()
|
||||
|
||||
for data in response['data']:
|
||||
print(data['attributes']['name'])
|
||||
id = data['id']
|
||||
get_courses_in_groups(id)
|
||||
for data in response["data"]:
|
||||
group = data["attributes"]["name"]
|
||||
id1 = data["id"]
|
||||
group_tupe = (id1, group)
|
||||
ids.append(group_tupe)
|
||||
|
||||
def get_courses_in_groups(id):
|
||||
"""
|
||||
From the IDs received above, list out all of the courses.
|
||||
"""
|
||||
count = 0
|
||||
courses = []
|
||||
while True:
|
||||
# count += 1
|
||||
url = f"groups/{id}/courses?limit=100"
|
||||
courseurl = f"{BASEURL}{url}"
|
||||
for tupe in ids:
|
||||
count += 1
|
||||
id = tupe[0]
|
||||
group = tupe[1]
|
||||
url2 = f"groups/{id}/courses?limit=100?page={count}"
|
||||
courseurl = f"{BASEURL}{url2}"
|
||||
coursereq = requests.get(courseurl, headers=HEADERS)
|
||||
coursedata = coursereq.json()
|
||||
# nextlink = coursedata['links']
|
||||
print(id)
|
||||
# print(coursedata)
|
||||
|
||||
for data in coursedata['included']:
|
||||
if data['attributes']['status'] == 'live':
|
||||
name = data['attributes']['name']
|
||||
id = data['attributes']['share_course_link'].split("/")[5]
|
||||
enrollments = data['attributes']['enrollments_count']
|
||||
created = data['attributes']['created_at']
|
||||
updated = data['attributes']['updated_at']
|
||||
for cdata in coursedata["included"]:
|
||||
if cdata["attributes"]["status"] == "live":
|
||||
name = cdata["attributes"]["name"]
|
||||
courseid = cdata["attributes"]["share_course_link"].split("/")[5]
|
||||
enrollments = cdata["attributes"]["enrollments_count"]
|
||||
created = cdata["attributes"]["created_at"]
|
||||
updated = cdata["attributes"]["updated_at"]
|
||||
coursedict = {
|
||||
"name": name, "id": id, "enrollments": enrollments,
|
||||
"created at": created, "updated at": updated
|
||||
"group": group,
|
||||
"name": name,
|
||||
"id": courseid,
|
||||
"enrollments": enrollments,
|
||||
"created at": created,
|
||||
"updated at": updated,
|
||||
}
|
||||
courses.append(coursedict)
|
||||
print(courses)
|
||||
courses.append(coursedict)
|
||||
|
||||
pddata = df.from_records(courses)
|
||||
pddata.to_csv("~/Downloads/Anthology_Course_IDs_Names.csv")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user