DV,Walmart, API Tests
This commit is contained in:
@ -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.
|
||||
|
||||
44
Scripts/API_Tests/api_test.py
Normal file
44
Scripts/API_Tests/api_test.py
Normal 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)
|
||||
38
Scripts/API_Tests/console_medialib.html
Normal file
38
Scripts/API_Tests/console_medialib.html
Normal 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>
|
||||
|
||||
@ -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)
|
||||
|
||||
Binary file not shown.
5
Todos.md
5
Todos.md
@ -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.
|
||||
|
||||
Reference in New Issue
Block a user