Files
Gainsight/Scripts/API_Tests/get_cat_lp_course_ids.py

106 lines
3.1 KiB
Python
Raw Normal View History

import csv
import os
import Apikeys
import requests
APIKEY = Apikeys.walmartprod
CMD = "touch ~/Downloads/Spark_Categories.csv"
HEADERS = {
"accept": "application/json",
"X-Api-Key": APIKEY,
}
def get_categories():
"""
Function to get the category Name and IDs and adding them to a list of tuples
"""
os.system("touch ~/Downloads/Spark_Categories.csv")
url = "https://api2.northpass.com/v2/categories?limit=100"
response = requests.get(url, headers=HEADERS)
response = response.json()
for item in response["data"]:
cat_tupe = (item["id"], item["attributes"]["name"])
with open(
"/Users/normrasmussen/Downloads/Spark_Categories.csv", "a", newline=""
) as csvfile:
writer = csv.writer(
csvfile, delimiter=",", quotechar="|", quoting=csv.QUOTE_MINIMAL
)
writer.writerow(cat_tupe)
def get_courses():
"""
Function to get the course name, ids, and activity names and ids to a list.
"""
count = 0
while True:
count += 1
url = f"https://api2.northpass.com/v2/courses?page={count}"
response = requests.get(url, headers=HEADERS)
response = response.json()
nextlink = response["links"]
for item in response["data"]:
status = item["attributes"]["status"]
if status == "live":
courses = (item["id"], item["attributes"]["name"])
get_activities(courses)
if "next" not in nextlink:
break
def get_activities(courses):
"""
Function that exists within a for loop!
This function is to get the category Name and IDs and adding them to a list of tuples
and writes them to a csv
"""
os.system("touch ~/Downloads/Spark_Courses.csv")
course_list = []
course_uuid, _ = courses
url = f"https://api2.northpass.com/v2/courses/{course_uuid}/activities"
response = requests.get(url, headers=HEADERS)
response = response.json()
for data in response["data"]:
activity_tupe = (data["id"], data["attributes"]["title"])
course_list.append(activity_tupe)
courses = (courses, course_list)
with open("/Users/normrasmussen/Downloads/Spark_Courses.csv", "a") as csvfile:
writer = csv.writer(
csvfile, delimiter=",", quotechar="|", quoting=csv.QUOTE_MINIMAL
)
writer.writerow(courses)
def get_learning_paths():
"""
Function to get the Learning Path Name and IDs and adding them to a list of tuples
"""
os.system("touch ~/Downloads/Spark_LPs.csv")
url = "https://api2.northpass.com/v2/learning_paths"
response = requests.get(url, headers=HEADERS)
response = response.json()
for data in response["data"]:
lps = (data["id"], data["attributes"]["name"])
print(lps)
with open("/Users/normrasmussen/Downloads/Spark_LPs.csv", "a") as csvfile:
writer = csv.writer(
csvfile, delimiter=",", quotechar="|", quoting=csv.QUOTE_MINIMAL
)
writer.writerow(lps)
if __name__ == "__main__":
get_categories()
get_courses()
get_learning_paths()