DV,Walmart, API Tests

This commit is contained in:
Norm Rasmussen
2022-11-03 21:06:46 -04:00
parent f9d4502301
commit 45f1f32b3b
6 changed files with 145 additions and 100 deletions

View File

@ -1,7 +1,6 @@
# DoubleVerify
- google sheets formula to add True/False to a cell if previous cell has a DV email or not - =IF(REGEXMATCH(B4, "@doubleverify"), True, False)
* Request from Rachel for Custom Report via Looker
· Date Range: Last 30 Days
· Learner Name
@ -9,7 +8,8 @@
· Course Progress
· Course Name
## Demo with Mark Protus
## 7/14/2022
### Demo with Mark Protus
Integration with LI Learning
Wants to stay within LMS and consume LinkedIn Learning content
Build learning paths using linked in cirricula and them make them availble within Northpass
@ -17,7 +17,8 @@ Utilize BBHR integration
COmpliance training would be via LinkedIn Learning and Traliant
Know4 bet
## Meeting with Mark Protus, New SVP of L&D
## 7/18/2022
### Meeting with Mark Protus, New SVP of L&D
Questions about usability
Do we have a common database or individual databases per customer?
- common
@ -53,7 +54,8 @@ How to check in analytics
He wants to add timeframe for when they have to complete next training?
Quizzes - how can we take out SCORM data
## Siying Mark SCORM Asks
## 7/21/2022
### Siying Mark SCORM Asks
Embedding Questions regarding SCORM files
- They want to see what quick solutions there are to adding a RISE course in Northpass
- Want to start creating those courses in RISE
@ -74,46 +76,26 @@ Embedding Questions regarding SCORM files
* Question from Mark
- .corp and .com issues with Okta
-
## Siying regarding Mark & Temperature Check
- Big Focus is scalability
- Moving tom Storyline to Rise
* Not all courses will be going to Rise
* Need customizability on course-based full screen settings SCORM
* This would be very impactful
- Mark could be concerned about the Rise courses being a better experience for learners
- Siying raised ticket regarding full screen with SCORM files
- Second thing, how to enable people managers?
* The ppl manager will have more responsibility for their employees journey
* No organizational structure in NP
* HR Ops should be joining the learning team
* If BBHR was connected to Okta, the learner account would be messed up
* Those people should have a dashboard to see how the team is doing
* A learner's dashboard - like what they need to complete, etc
* Eric previously told them it would be extra money, this was before they were enterprise
* They have some courses with credentials, but it isn't visualized
* How to visualize their certs and completions etc
* Checklist for the learners too
- Third thing, Data Collection and Specificty
* Collecting data from SCORM package, they want more details
* How can they collaborate the SCORM functionality into Northpass Data
* Currently, they can create Northpass quizzes, but it needs to be shared with external stakeholders
* They don't like scheduled reporting?
* The team that recieves the reports prefers survey monkey
* How to quickly generate data and more robust data points
* Faster insights - more vizualisations
* This is to share with others that don't have backend access
* The admin dash for a manager is too confusing, it needs to be simpler
* Maybe not going into the backend, but an easier way to share this information
* Example: Survey Monkey has a link where you can share a link that has analytics easily available
* The link is dynamic and you don't have to update the content everytime to send it along
* Graphics are automated in the background of SurveyMonkey
* Siying is getting pressure from others to use SurveyMonkey as the standard approach for learning and assesments
* Data Privacy for SurveyMonkey, is it safe to share?
Mark wants to use Rise more. With all the above and the full-screen settings with Rise is making it harder to use the table of contents, then with all the layout, and then the assesment outside of the SCORM package feels jarring
## Okta Errors
Who should be on the call - Sowmya, Yoav, Lukasz
## 11/3/2022
### Temp Check with Siying
* The entire company is really just focused on data
* Getting more Data to stakeholders and to the right people
* How can Siying's team empower managers to collect their own data?
* Content is also building very quickly and the content is very tailored to specific people.
* Not easy to create new groups and add people. No cloning of courses.
* More people are involved with Rise Development and Creating Courses.
* Rise & Northpass are not really compatible, nor is SCORM in general.
* To allow the hiding of TOC, DV has to raise a ticket to Northpass to request it. This is done on a case by case basis.
* They want more control over everything. Everything is a workaround. They want to be able to quickly change things.
* Siying doesn't always get prep time for things, so it doesn't behoove her to submit a ticket etc.
* A lot of courses assigned to a lot of different people, multiple pages of courses.
* Cannot filter courses well, especially when resetting course progress. They have to change the course name temporarily to something that starts with A so that it shows up higher in the list.
* All the dropdowns are not user friendly because with long lists, it is glitchy and doesn't show all the courses.
* SCORM Pacages hurdles:
* They can't easily add SCORM packages to the course because it doesn't show up in alphabetical order
* The names are not easily readable, you have to scroll very carefully to find the right course.
* Siying is literally preventing her boss from using Northpass so he doesn't throw it out of the window before the contract is over.
* They have a new VP of Talent Management with them onsite and they will know by next week if they are keeping Northpass or not.
* They are currently in budgeting season.
* Next sync in 2 weeks.

View File

@ -0,0 +1,44 @@
import requests
apiKey = "SlpQlju219WnWogn94dQUT6Yt"
url = "https://api.northpass.com/v1/media"
#function = sys.argv[1]
def putTest(apiKey, url):
payload = {
"data":
{
"type":"media",
"file_name":"/Users/normrasmussen/Downloads/Shopping&Delivery 9 XP.mp4",
}
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"X-Api-Key": apiKey,
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)
def getTest(apiKey,url):
headers = {
"accept": "application/json",
"X-Api-Key": apiKey
}
response = requests.get(url, headers=headers)
print(response.text)
def postTest(apiKey, url):
headers = {
"accept": "application/json",
"content-type": "application/json",
"X-Api-Key": apiKey
}
response = requests.post(url, headers=headers)
print(response.text)
if __name__ == "__main__":
getTest(apiKey, url)
#putTest(apiKey, url)
#postTest(apiKey, url)

View File

@ -0,0 +1,38 @@
<script
type="application/json"
class="js-react-on-rails-component"
data-component-name="TableBox"
data-dom-id="TableBox-react-component-4c1d0baa-eca8-4312-8626-591abf094ee4">
{
"token":"eyJhbGciOiJIUzI1NiJ9.eyJhcGlfa2V5IjoiU2xwUWxqdTIxOVduV29nbjk0ZFFVVDZZdCIsImV4cCI6MTY2NzU2NTg1Nn0.CFD30gpbrwsY1LnddlfvpI1LUojrtK723MTNyeQqixM",
"columns":[
{
"name":"Name",
"field":"name",
"link":"teaching/show",
"sort":true
},
{
"name":"File Name",
"field":"fileName",
"link":"teaching/show",
"sort":true
},
{
"name":"Asset Type",
"field":"assetType",
"as":"i18n",
"sort":"type",
"formatOptions":
{
"scope":"media.asset_type"
}
},
{
"name":"Status",
"field":"status",
"as":"status",
"formatOptions":
{
"errorMessageField":"status_message","i18nScope":"media.asset_status"},"sort":true},{"name":"Date Uploaded","field":"createdAt","as":"date_time","sort":true}],"filterMessage":"","initialHeader":"","initialMessage":"","loadingHeader":"","loadingMessage":"","noDataHeader":"Looks like you haven't uploaded any media assets yet!","noDataMessage":"Start uploading your first asset by clicking the button above.","url":"https://api.northpass.com/v1/media","filters":[{"name":"Asset Type","field":"type","options":[{"label":"Documents","value":"Uploads::Document"},{"label":"Presentations","value":"Uploads::Presentation"},{"label":"Videos","value":"Uploads::Video"},{"label":"SCORM","value":"Uploads::Scorm"}]},{"name":"Asset Status","field":"status","options":[{"label":"Queued","value":"queued"},{"label":"Processing","value":"processing"},{"label":"Ready","value":"ready"},{"label":"Error","value":"error"},{"label":"Replacing","value":"replacing"},{"label":"Error replacing","value":"error_replacing"}]}],"itemActions":[{"action":"delete","behavior":"deprecated_confirm_modal","behaviorOptions":{"disabledCondition":{"status":"replacing"},"hiddenCondition":{"status":"error_replacing"},"confirmButtonOptions":{"classes":["np-button--danger"],"text":"I understand, please delete."},"deleteHeader":"Are you sure you want to delete this file?","modalContent":"delete_media"}},{"action":"edit"},{"action":"replace","behaviorOptions":{"disabledCondition":{"status":"replacing"},"hiddenCondition":{"replaceable":false},"requirement":{"status":"ready"}}},{"action":"download","behaviorOptions":{"disabledCondition":{"status":"replacing"},"hiddenCondition":{"status":"error_replacing"}}},{"action":"Dismiss Error","behavior":"dismiss_error_link","behaviorOptions":{"buttonClassNames":"uk-dropdown-button","disabledCondition":{"status":"replacing"},"hiddenCondition":{"status":"not_error_replacing"}}},{"action":"create_course_from_file","behaviorOptions":{"hiddenCondition":[{"status":"not_ready"},{"assetType":"not_scorm_single"}],"method":"post"}}],"options":{"search":true,"classNames":[]}}</script><div id="TableBox-react-component-4c1d0baa-eca8-4312-8626-591abf094ee4"></div>

View File

@ -3,11 +3,13 @@ import sys
import http
import pandas as pd
apiKey = "SlpQlju219WnWogn94dQUT6Yt"
#groupName = sys.argv[1]
peopleCsv = "/Users/normrasmussen/Downloads/peopletogroups.csv"
# Enter your API Key between the quotation marks.
apiKey = ""
groupName = sys.argv[1]
peopleCsv = "/path/to/file/peopletogroups.csv"
def createGroup(groupName, apiKey):
#apiKey = input("What is your API Key? ")
# Create a Group endpoint - params: group_uuid
url = "https://api.northpass.com/v2/groups"
payload = {"data": {"attributes": {"name": f"{groupName}"}}}
@ -40,58 +42,42 @@ def getgroupId(people, groupresponse, apiKey):
ppltoGroup(people, groupID, apiKey)
def ppltoGroup(people, groupID, apiKey):
print(groupID)
# Add People to a Group. Params needed: group_uuid
url = f"https://api.northpass.com/v2/groups/{groupID}/relationships/people"
# Loop through this payload and/or add everyone as new { "type":"people", "id":"uuid"}
#for uuid in people:
# itempayload = []
# jsonpayload = { "type":"people", "id":uuid },
# itempayload.append(jsonpayload)
payload = {"data": [
for uuid in people:
payload = {"data": [
{
"type":"people",
"id":people
"id":uuid
},
# { "type":"people", "id":people[1]},
# { "type":"people", "id":people[2]},
]}
# Add People to a Group. Params needed: group_uuid
url = f"https://api.northpass.com/v2/groups/{groupID}/relationships/people"
headers = {
"accept": "*/*",
"content-type": "application/json",
"X-Api-Key": apiKey
}
response = requests.post(url, json=payload, headers=headers)
if "404" in response.text:
print("Error returned for this user. Collecting names.")
errorNames(apiKey, uuid)
else:
pass
def errorNames(apiKey, uuid):
url = f"https://api.northpass.com/v2/people/{uuid}"
headers = {
"accept": "*/*",
"content-type": "application/json",
"accept": "application/json",
"X-Api-Key": apiKey
}
print(url)
print(payload)
print(headers)
response = requests.post(url, json=payload, headers=headers)
print(response.text)
response = requests.get(url, headers=headers)
response = response.json()
errorList = []
names = response["data"]["attributes"]["full_name"]
errorList.append(names)
fullNames(errorList)
def fullNames(errorList):
print(errorList)
if __name__ == "__main__":
ppltoGroup(people="0b31c435-c18b-4573-984e-32cda57045b4", groupID="4f83841f-939f-469f-b98f-29ce7f980c6e",apiKey="SlpQlju219WnWogn94dQUT6Yt")
#createGroup(groupName, apiKey)
url = "https://api.northpass.com/v2/groups/4c2e807c-2b65-4ce7-a359-2e470fe4f322/relationships/people"
payload = {"data": [
{
"type": "people",
"id": "0b31c435-c18b-4573-984e-32cda57045b4"
},
{
"type": "people",
"id": "0b31c435-c18b-4573-984e-32cda57045b4"
}
]}
headers = {
"accept": "*/*",
"content-type": "application/json",
"X-Api-Key": "SlpQlju219WnWogn94dQUT6Yt"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
createGroup(groupName, apiKey)

View File

@ -1,17 +1,12 @@
* [ ] (KeystoneRV) [10/27/2022] Are learners enrolled in Learning Paths, enrolled in all courses in the LP? Or just the first one? When does Enrollment start?
* [ ] (Talkspace) [10/27/2022] Pull master Spreadsheet of Learning Paths, MCA
* [ ] (Talkspace) [10/27/2022] Update 2022 to 2023 on the main dashboard page - Update now
* [ ] (Talkspace) [10/27/2022] After someone finishes the 1099 courses, they will then reach the Compliance Group/courses. The 1099 courses should not be seen.
* [ ] (Talkspace) [10/27/2022] Send Molly options for hiding the 1099 courses. Workflows to unenroll? Hide courses not in the group?
* [ ] (Talkspace) [10/27/2022] Record Vidyard + Screenshots to show what needs to be done.
* [ ] (Talkspace) [10/27/2022] Setup Workflow Notifications
* [ ] (Talkspace) [10/27/2022] Turn on Workflows for Talkspace BBHR
* [ ] (Talkspace) [10/27/2022] Get designs for Learning Path Customization & we can talk about categories
* [ ] (Talkspace) [10/27/2022] Password protection for a course when prompted.
* [ ] (Talkspace) [10/27/2022] Create Angel and Jenna as admins in all three.
* [ ] (Talkspace) [10/27/2022] See if in NPP school we can remove/delete not activated people.
* [ ] (Talkspace) [10/27/2022] Pull report of all users in NPP with activated/deactived status
* [ ] (Wildhealth) [10/31/2022] Pass PTO information onto Brian so he knows about the support tickets from Baeleigh & WildHealth.
* [ ] (Wildhealth) [10/31/2022] Update Branding on WPG - Abby to send new logo and Norm to figure out colors/branding for styling.
* [ ] (Talkspace) [11/1/2022] Send Gracie and Molly the correct URLs for the Fountain links.
* [X] (DV) [11/1/2022] Write Script for creating a new group and adding people to that group via API from reading off a CSV.