diff --git a/apiscraper/__pycache__/items.cpython-311.pyc b/apiscraper/__pycache__/items.cpython-311.pyc index 1ee7fe6..e5db0d2 100644 Binary files a/apiscraper/__pycache__/items.cpython-311.pyc and b/apiscraper/__pycache__/items.cpython-311.pyc differ diff --git a/apiscraper/items.py b/apiscraper/items.py index 1786649..0c367b3 100644 --- a/apiscraper/items.py +++ b/apiscraper/items.py @@ -7,4 +7,4 @@ class EndpointItems(Item): method = Field() endpoint = Field() inclusions = Field() - params = Field() + req_param = Field() diff --git a/apiscraper/spiders/__pycache__/dev_spider.cpython-311.pyc b/apiscraper/spiders/__pycache__/dev_spider.cpython-311.pyc index f61f678..ea1d4ad 100644 Binary files a/apiscraper/spiders/__pycache__/dev_spider.cpython-311.pyc and b/apiscraper/spiders/__pycache__/dev_spider.cpython-311.pyc differ diff --git a/apiscraper/spiders/dev_spider.py b/apiscraper/spiders/dev_spider.py index 8940968..752d739 100644 --- a/apiscraper/spiders/dev_spider.py +++ b/apiscraper/spiders/dev_spider.py @@ -8,7 +8,7 @@ class ApiSpider(scrapy.Spider): def start_requests(self): urls = [ - "https://developers.northpass.com/reference/get_v2-activities", + "https://developers.northpass.com/reference/get_v2-activities" ] for url in urls: yield scrapy.Request(url=url, meta=dict( @@ -27,13 +27,25 @@ class ApiSpider(scrapy.Spider): end_item = EndpointItems() end_item['inclusions'] = [] - end_item['params'] = [] + end_item['req_param'] = [] for item in response.xpath('//*[@id="Explorer"]'): end_item['title'] = response.xpath('//*[@id="content"]/header[1]/div[1]/h1/text()').get() + end_item['method'] = response.xpath('//*[@id="content"]/header[1]/div[2]/span[1]/text()').get() - end_item['endpoint'] = response.xpath('//*[@id="content"]/header[1]/div[2]/span[2]/text()[2]').get() + + end_item['endpoint'] = response.xpath('//*[@id="content"]/header[1]/div[2]/span[2]').xpath("@title").extract() + + end_item['req_param'] = response.xpath('//*[@id="content"]/header[1]/div[2]/span[2]/label/text()').get() + required = response.xpath('//*[@id="path-getV2GroupsGroup_uuidMemberships"]/div/div[1]/div/div[2]/text()').get() + if required is not None: + if "required" in required: + req_param = end_item['req_param'] + else: + pass + else: + req_param = "" + end_item['inclusions'].append(response.xpath('//*[starts-with(@id,"query")]/div/p/code/span[position() >= 1 and not(position() > 15)]/text()').get()) - #end_item['params'].append(response.xpath('//*[starts-with(@id,"path"]/div/div[1]/div/label/text()').get()) if end_item['inclusions'] is not None: inclusions = end_item['inclusions'] else: @@ -43,6 +55,7 @@ class ApiSpider(scrapy.Spider): end_item['title'] : { 'method' : end_item['method'], 'endpoint' : end_item['endpoint'], + 'req_param' : req_param, 'inclusions' : inclusions } } @@ -53,7 +66,7 @@ class ApiSpider(scrapy.Spider): self.log(northpass_endpoints) next_page = response.xpath('//*[@id="content"]/div[4]/nav/a[2]/@href').get() - self.log(f"The next page is {next_page}") + # self.log(f"The next page is {next_page}") if next_page is not None: nexturl = response.urljoin(next_page) diff --git a/apiscraper/spiders/outputtest.json b/apiscraper/spiders/outputtest.json deleted file mode 100644 index f0331a9..0000000 --- a/apiscraper/spiders/outputtest.json +++ /dev/null @@ -1,202 +0,0 @@ -[ -{"List activities": {"method": "get", "endpoint": "/v2/activities"}}, -{}, -{"Fetch an activity": {"method": "get", "endpoint": "/v2/activities/"}}, -{}, -{"BambooHR configuration": {"method": "get", "endpoint": "/v2/apps/bamboo_hr"}}, -{}, -{"Update BambooHR configuration": {"method": "put", "endpoint": "/v2/apps/bamboo_hr"}}, -{}, -{"Delete BambooHR configuration": {"method": "delete", "endpoint": "/v2/apps/bamboo_hr"}}, -{}, -{"List assignment submissions": {"method": "get", "endpoint": "/v2/assignments/"}}, -{}, -{"Fetch an assignment submission": {"method": "get", "endpoint": "/v2/assignments/"}}, -{}, -{"List all assignments": {"method": "get", "endpoint": "/v2/assignments"}}, -{}, -{"Bulk add courses to groups": {"method": "post", "endpoint": "/v2/bulk/groups/courses"}}, -{}, -{"Bulk create groups for a school": {"method": "post", "endpoint": "/v2/bulk/groups"}}, -{}, -{"Bulk add people to groups": {"method": "post", "endpoint": "/v2/bulk/people/membership"}}, -{}, -{"Bulk enroll people to courses [deprecated]": {"method": "post", "endpoint": "/v2/bulk/enrollments"}}, -{}, -{"Bulk enroll people to courses": {"method": "post", "endpoint": "/v2/bulk/people/course"}}, -{}, -{"Bulk invite people to a school": {"method": "post", "endpoint": "/v2/bulk/people"}}, -{}, -{"Bulk resend school inviation to people": {"method": "post", "endpoint": "/v2/bulk/people/resend_invitation"}}, -{}, -{"List categories": {"method": "get", "endpoint": "/v2/categories"}}, -{}, -{"Create a category": {"method": "post", "endpoint": "/v2/categories"}}, -{}, -{"Fetch a category": {"method": "get", "endpoint": "/v2/categories/"}}, -{}, -{"Update a category": {"method": "put", "endpoint": "/v2/categories/"}}, -{}, -{"Delete a category": {"method": "delete", "endpoint": "/v2/categories/"}}, -{}, -{"Resend communication": {"method": "post", "endpoint": "/v2/communications/deliveries/"}}, -{}, -{"List deliveries": {"method": "get", "endpoint": "/v2/communications/deliveries/"}}, -{}, -{"Update attendance confirmation notification": {"method": "put", "endpoint": "/v2/communications/emails/attendance_confirmation"}}, -{}, -{"Update courses incomplete notification": {"method": "put", "endpoint": "/v2/communications/emails/courses_incomplete_notification"}}, -{}, -{"Update new courses notification": {"method": "put", "endpoint": "/v2/communications/emails/new_courses_notification"}}, -{}, -{"Update training session registration notification": {"method": "put", "endpoint": "/v2/communications/emails/training_session_registration_confirmation"}}, -{}, -{"List activities for a course": {"method": "get", "endpoint": "/v2/courses/"}}, -{}, -{"List groups not yet associated with course": {"method": "get", "endpoint": "/v2/courses/"}}, -{}, -{"List people not yet enrolled with course": {"method": "get", "endpoint": "/v2/courses/"}}, -{}, -{"List enrollments for a course": {"method": "get", "endpoint": "/v2/courses/"}}, -{}, -{"Retake a course": {"method": "post", "endpoint": "/v2/courses/"}}, -{}, -{"List courses": {"method": "get", "endpoint": "/v2/courses"}}, -{}, -{"List credential achievements": {"method": "get", "endpoint": "/v2/credentials/"}}, -{}, -{"List credential courses": {"method": "get", "endpoint": "/v2/credentials/"}}, -{}, -{"Delete course credential": {"method": "delete", "endpoint": "/v2/credentials/"}}, -{}, -{"List credentials": {"method": "get", "endpoint": "/v2/credentials"}}, -{}, -{"Delete a credential": {"method": "delete", "endpoint": "/v2/credentials/"}}, -{}, -{"List custom templates": {"method": "get", "endpoint": "/v2/custom_templates"}}, -{}, -{"Create a custom template": {"method": "post", "endpoint": "/v2/custom_templates"}}, -{}, -{"Delete a custom template": {"method": "delete", "endpoint": "/v2/custom_templates/"}}, -{}, -{"List email senders": {"method": "get", "endpoint": "/v2/email_domains/"}}, -{}, -{"Update an email sender": {"method": "put", "endpoint": "/v2/email_domains/"}}, -{}, -{"Delete an email sender": {"method": "delete", "endpoint": "/v2/email_domains/"}}, -{}, -{"List email domains": {"method": "get", "endpoint": "/v2/email_domains"}}, -{}, -{"Create an email domain": {"method": "post", "endpoint": "/v2/email_domains"}}, -{}, -{"Delete an email domain": {"method": "delete", "endpoint": "/v2/email_domains/"}}, -{}, -{"List events": {"method": "get", "endpoint": "/v2/events"}}, -{}, -{"List group's courses": {"method": "get", "endpoint": "/v2/groups/"}}, -{}, -{"List group's memberships": {"method": "get", "endpoint": "/v2/groups/"}}, -{}, -{"Add courses to a group": {"method": "post", "endpoint": "/v2/groups/"}}, -{}, -{"Add people to a group": {"method": "post", "endpoint": "/v2/groups/"}}, -{}, -{"List groups": {"method": "get", "endpoint": "/v2/groups"}}, -{}, -{"Create a group": {"method": "post", "endpoint": "/v2/groups"}}, -{}, -{"Fetch a group": {"method": "get", "endpoint": "/v2/groups/"}}, -{}, -{"Update a group": {"method": "put", "endpoint": "/v2/groups/"}}, -{}, -{"Delete a group": {"method": "delete", "endpoint": "/v2/groups/"}}, -{}, -{"Deactivate a person": {"method": "post", "endpoint": "/v2/people/"}}, -{}, -{"Reactivate a person": {"method": "delete", "endpoint": "/v2/people/"}}, -{}, -{"Associate a person with a course": {"method": "post", "endpoint": "/v2/people/"}}, -{}, -{"Remove a person from a course": {"method": "delete", "endpoint": "/v2/people/"}}, -{}, -{"Add groups to a person": {"method": "post", "endpoint": "/v2/people/"}}, -{}, -{"Remove a person from a group": {"method": "delete", "endpoint": "/v2/people/"}}, -{}, -{"List people": {"method": "get", "endpoint": "/v2/people"}}, -{}, -{"Create a person": {"method": "post", "endpoint": "/v2/people"}}, -{}, -{"Fetch a person": {"method": "get", "endpoint": "/v2/people/"}}, -{}, -{"Update a person": {"method": "put", "endpoint": "/v2/people/"}}, -{}, -{"Delete a person": {"method": "delete", "endpoint": "/v2/people/"}}, -{}, -{"List question banks": {"method": "get", "endpoint": "/v2/question_banks"}}, -{}, -{"Create a question bank": {"method": "post", "endpoint": "/v2/question_banks"}}, -{}, -{"Fetch a question bank": {"method": "get", "endpoint": "/v2/question_banks/"}}, -{}, -{"List learner quiz answers": {"method": "get", "endpoint": "/v2/quiz_attempts/"}}, -{}, -{"List quizzes": {"method": "get", "endpoint": "/v2/quizzes"}}, -{}, -{"List all assignment submissions": {"method": "get", "endpoint": "/v2/submissions"}}, -{}, -{"List all configured webhook endpoints": {"method": "get", "endpoint": "/v2/webhook_endpoints"}}, -{}, -{"Creates new webhook endpoint": {"method": "post", "endpoint": "/v2/webhook_endpoints"}}, -{}, -{"Updates webhook endpoint": {"method": "put", "endpoint": "/v2/webhook_endpoints/"}}, -{}, -{"Delete a webhook endpoint": {"method": "delete", "endpoint": "/v2/webhook_endpoints/"}}, -{}, -{"List all sent webhooks": {"method": "get", "endpoint": "/v2/webhooks"}}, -{}, -{"Bulk fill courses property values": {"method": "post", "endpoint": "/v2/properties/courses/bulk"}}, -{}, -{"Bulk clear courses property values": {"method": "delete", "endpoint": "/v2/properties/courses/bulk"}}, -{}, -{"Bulk fill people property values": {"method": "post", "endpoint": "/v2/properties/people/bulk"}}, -{}, -{"Bulk clear people property values": {"method": "delete", "endpoint": "/v2/properties/people/bulk"}}, -{}, -{"List properties available for courses": {"method": "get", "endpoint": "/v2/properties/courses/properties"}}, -{}, -{"Get available course properties with values": {"method": "get", "endpoint": "/v2/properties/courses/"}}, -{}, -{"List created property definitions": {"method": "get", "endpoint": "/v2/properties/conditional"}}, -{}, -{"Create conditional property with mapping": {"method": "post", "endpoint": "/v2/properties/conditional"}}, -{}, -{"Delete conditional property": {"method": "delete", "endpoint": "/v2/properties/conditional/"}}, -{}, -{"Update conditional property": {"method": "patch", "endpoint": "/v2/properties/conditional/"}}, -{}, -{"List properties available for people": {"method": "get", "endpoint": "/v2/properties/people/properties"}}, -{}, -{"Get available person properties with values": {"method": "get", "endpoint": "/v2/properties/people/"}}, -{}, -{"List unique values for property": {"method": "get", "endpoint": "/v2/properties/property_definitions/"}}, -{}, -{"List created property definitions": {"method": "get", "endpoint": "/v2/properties/property_definitions"}}, -{}, -{"Create property definition": {"method": "post", "endpoint": "/v2/properties/property_definitions"}}, -{}, -{"Get property definition": {"method": "get", "endpoint": "/v2/properties/property_definitions/"}}, -{}, -{"Delete property definition": {"method": "delete", "endpoint": "/v2/properties/property_definitions/"}}, -{}, -{"Create property definition": {"method": "patch", "endpoint": "/v2/properties/property_definitions/"}}, -{}, -{"List properties available for school": {"method": "get", "endpoint": "/v2/properties/school/properties"}}, -{}, -{"Get available school properties with values": {"method": "get", "endpoint": "/v2/properties/school"}}, -{}, -{"Clear school properties with values": {"method": "delete", "endpoint": "/v2/properties/school"}}, -{}, -{"Fill school properties with values": {"method": "patch", "endpoint": "/v2/properties/school"}}, -{} -] \ No newline at end of file diff --git a/apiscraper/spiders/outputtest3.json b/apiscraper/spiders/outputtest3.json new file mode 100644 index 0000000..f84023c --- /dev/null +++ b/apiscraper/spiders/outputtest3.json @@ -0,0 +1,202 @@ +[ +{"List activities": {"method": "get", "endpoint": ["https://api.northpass.com/v2/activities"], "req_param": "", "inclusions": ["course"]}}, +{}, +{"Fetch an activity": {"method": "get", "endpoint": ["https://api.northpass.com/v2/activities/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"BambooHR configuration": {"method": "get", "endpoint": ["https://api.northpass.com/v2/apps/bamboo_hr"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update BambooHR configuration": {"method": "put", "endpoint": ["https://api.northpass.com/v2/apps/bamboo_hr"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete BambooHR configuration": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/apps/bamboo_hr"], "req_param": "", "inclusions": [null]}}, +{}, +{"List assignment submissions": {"method": "get", "endpoint": ["https://api.northpass.com/v2/assignments/{assignment_uuid}/submissions"], "req_param": "", "inclusions": ["assignment"]}}, +{}, +{"Fetch an assignment submission": {"method": "get", "endpoint": ["https://api.northpass.com/v2/assignments/{assignment_uuid}/submissions/{assignment_submission_uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List all assignments": {"method": "get", "endpoint": ["https://api.northpass.com/v2/assignments"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk add courses to groups": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/groups/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk create groups for a school": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk add people to groups": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/people/membership"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk enroll people to courses [deprecated]": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/enrollments"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk enroll people to courses": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/people/course"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk invite people to a school": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/people"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk resend school inviation to people": {"method": "post", "endpoint": ["https://api.northpass.com/v2/bulk/people/resend_invitation"], "req_param": "", "inclusions": [null]}}, +{}, +{"List categories": {"method": "get", "endpoint": ["https://api.northpass.com/v2/categories"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create a category": {"method": "post", "endpoint": ["https://api.northpass.com/v2/categories"], "req_param": "", "inclusions": [null]}}, +{}, +{"Fetch a category": {"method": "get", "endpoint": ["https://api.northpass.com/v2/categories/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update a category": {"method": "put", "endpoint": ["https://api.northpass.com/v2/categories/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a category": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/categories/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Resend communication": {"method": "post", "endpoint": ["https://api.northpass.com/v2/communications/deliveries/{delivery_uuid}/resend"], "req_param": "", "inclusions": [null]}}, +{}, +{"List deliveries": {"method": "get", "endpoint": ["https://api.northpass.com/v2/communications/deliveries/"], "req_param": "", "inclusions": ["person"]}}, +{}, +{"Update attendance confirmation notification": {"method": "put", "endpoint": ["https://api.northpass.com/v2/communications/emails/attendance_confirmation"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update courses incomplete notification": {"method": "put", "endpoint": ["https://api.northpass.com/v2/communications/emails/courses_incomplete_notification"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update new courses notification": {"method": "put", "endpoint": ["https://api.northpass.com/v2/communications/emails/new_courses_notification"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update training session registration notification": {"method": "put", "endpoint": ["https://api.northpass.com/v2/communications/emails/training_session_registration_confirmation"], "req_param": "", "inclusions": [null]}}, +{}, +{"List activities for a course": {"method": "get", "endpoint": ["https://api.northpass.com/v2/courses/{course_uuid}/activities"], "req_param": "", "inclusions": ["course"]}}, +{}, +{"List groups not yet associated with course": {"method": "get", "endpoint": ["https://api.northpass.com/v2/courses/{course_uuid}/available_groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"List people not yet enrolled with course": {"method": "get", "endpoint": ["https://api.northpass.com/v2/courses/{course_uuid}/available_people"], "req_param": "", "inclusions": [null]}}, +{}, +{"List enrollments for a course": {"method": "get", "endpoint": ["https://api.northpass.com/v2/courses/{course_uuid}/enrollments"], "req_param": "", "inclusions": ["person"]}}, +{}, +{"Retake a course": {"method": "post", "endpoint": ["https://api.northpass.com/v2/courses/{course_uuid}/people/{person_uuid}/retakes"], "req_param": "", "inclusions": [null]}}, +{}, +{"List courses": {"method": "get", "endpoint": ["https://api.northpass.com/v2/courses"], "req_param": "", "inclusions": ["instructor_partnerships"]}}, +{}, +{"List credential achievements": {"method": "get", "endpoint": ["https://api.northpass.com/v2/credentials/{credential_uuid}/achievements"], "req_param": "", "inclusions": [null]}}, +{}, +{"List credential courses": {"method": "get", "endpoint": ["https://api.northpass.com/v2/credentials/{credential_uuid}/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete course credential": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/credentials/{credential_uuid}/courses/{course_uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List credentials": {"method": "get", "endpoint": ["https://api.northpass.com/v2/credentials"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a credential": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/credentials/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List custom templates": {"method": "get", "endpoint": ["https://api.northpass.com/v2/custom_templates"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create a custom template": {"method": "post", "endpoint": ["https://api.northpass.com/v2/custom_templates"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a custom template": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/custom_templates/"], "req_param": "", "inclusions": [null]}}, +{}, +{"List email senders": {"method": "get", "endpoint": ["https://api.northpass.com/v2/email_domains/{email_domain_uuid}/email_senders"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update an email sender": {"method": "put", "endpoint": ["https://api.northpass.com/v2/email_domains/{email_domain_uuid}/email_senders/{email_sender_uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete an email sender": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/email_domains/{email_domain_uuid}/email_senders/{email_sender_uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List email domains": {"method": "get", "endpoint": ["https://api.northpass.com/v2/email_domains"], "req_param": "", "inclusions": ["email_senders"]}}, +{}, +{"Create an email domain": {"method": "post", "endpoint": ["https://api.northpass.com/v2/email_domains"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete an email domain": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/email_domains/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List events": {"method": "get", "endpoint": ["https://api.northpass.com/v2/events"], "req_param": "", "inclusions": [null]}}, +{}, +{"List group's courses": {"method": "get", "endpoint": ["https://api.northpass.com/v2/groups/{group_uuid}/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"List group's memberships": {"method": "get", "endpoint": ["https://api.northpass.com/v2/groups/{group_uuid}/memberships"], "req_param": "{group_uuid}", "inclusions": [null]}}, +{}, +{"Add courses to a group": {"method": "post", "endpoint": ["https://api.northpass.com/v2/groups/{group_uuid}/relationships/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"Add people to a group": {"method": "post", "endpoint": ["https://api.northpass.com/v2/groups/{group_uuid}/relationships/people"], "req_param": "", "inclusions": [null]}}, +{}, +{"List groups": {"method": "get", "endpoint": ["https://api.northpass.com/v2/groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create a group": {"method": "post", "endpoint": ["https://api.northpass.com/v2/groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"Fetch a group": {"method": "get", "endpoint": ["https://api.northpass.com/v2/groups/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update a group": {"method": "put", "endpoint": ["https://api.northpass.com/v2/groups/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a group": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/groups/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Deactivate a person": {"method": "post", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/deactivations"], "req_param": "", "inclusions": [null]}}, +{}, +{"Reactivate a person": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/deactivations"], "req_param": "", "inclusions": [null]}}, +{}, +{"Associate a person with a course": {"method": "post", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/relationships/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"Remove a person from a course": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/relationships/courses"], "req_param": "", "inclusions": [null]}}, +{}, +{"Add groups to a person": {"method": "post", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/relationships/groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"Remove a person from a group": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/people/{person_uuid}/relationships/groups"], "req_param": "", "inclusions": [null]}}, +{}, +{"List people": {"method": "get", "endpoint": ["https://api.northpass.com/v2/people"], "req_param": "", "inclusions": ["school"]}}, +{}, +{"Create a person": {"method": "post", "endpoint": ["https://api.northpass.com/v2/people"], "req_param": "", "inclusions": [null]}}, +{}, +{"Fetch a person": {"method": "get", "endpoint": ["https://api.northpass.com/v2/people/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update a person": {"method": "put", "endpoint": ["https://api.northpass.com/v2/people/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a person": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/people/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List question banks": {"method": "get", "endpoint": ["https://api.northpass.com/v2/question_banks"], "req_param": "", "inclusions": ["dynamic_quizzes"]}}, +{}, +{"Create a question bank": {"method": "post", "endpoint": ["https://api.northpass.com/v2/question_banks"], "req_param": "", "inclusions": [null]}}, +{}, +{"Fetch a question bank": {"method": "get", "endpoint": ["https://api.northpass.com/v2/question_banks/{uuid}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List learner quiz answers": {"method": "get", "endpoint": ["https://api.northpass.com/v2/quiz_attempts/{quiz_attempt_uuid}/answers"], "req_param": "", "inclusions": [null]}}, +{}, +{"List quizzes": {"method": "get", "endpoint": ["https://api.northpass.com/v2/quizzes"], "req_param": "", "inclusions": ["activities"]}}, +{}, +{"List all assignment submissions": {"method": "get", "endpoint": ["https://api.northpass.com/v2/submissions"], "req_param": "", "inclusions": ["assignment"]}}, +{}, +{"List all configured webhook endpoints": {"method": "get", "endpoint": ["https://api.northpass.com/v2/webhook_endpoints"], "req_param": "", "inclusions": [null]}}, +{}, +{"Creates new webhook endpoint": {"method": "post", "endpoint": ["https://api.northpass.com/v2/webhook_endpoints"], "req_param": "", "inclusions": [null]}}, +{}, +{"Updates webhook endpoint": {"method": "put", "endpoint": ["https://api.northpass.com/v2/webhook_endpoints/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete a webhook endpoint": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/webhook_endpoints/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List all sent webhooks": {"method": "get", "endpoint": ["https://api.northpass.com/v2/webhooks"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk fill courses property values": {"method": "post", "endpoint": ["https://api.northpass.com/v2/properties/courses/bulk"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk clear courses property values": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/properties/courses/bulk"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk fill people property values": {"method": "post", "endpoint": ["https://api.northpass.com/v2/properties/people/bulk"], "req_param": "", "inclusions": [null]}}, +{}, +{"Bulk clear people property values": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/properties/people/bulk"], "req_param": "", "inclusions": [null]}}, +{}, +{"List properties available for courses": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/courses/properties"], "req_param": "", "inclusions": [null]}}, +{}, +{"Get available course properties with values": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/courses/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List created property definitions": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/conditional"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create conditional property with mapping": {"method": "post", "endpoint": ["https://api.northpass.com/v2/properties/conditional"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete conditional property": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/properties/conditional/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Update conditional property": {"method": "patch", "endpoint": ["https://api.northpass.com/v2/properties/conditional/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List properties available for people": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/people/properties"], "req_param": "", "inclusions": [null]}}, +{}, +{"Get available person properties with values": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/people/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List unique values for property": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions/{id}/unique_values"], "req_param": "", "inclusions": [null]}}, +{}, +{"List created property definitions": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create property definition": {"method": "post", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions"], "req_param": "", "inclusions": [null]}}, +{}, +{"Get property definition": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Delete property definition": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"Create property definition": {"method": "patch", "endpoint": ["https://api.northpass.com/v2/properties/property_definitions/{id}"], "req_param": "", "inclusions": [null]}}, +{}, +{"List properties available for school": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/school/properties"], "req_param": "", "inclusions": [null]}}, +{}, +{"Get available school properties with values": {"method": "get", "endpoint": ["https://api.northpass.com/v2/properties/school"], "req_param": "", "inclusions": [null]}}, +{}, +{"Clear school properties with values": {"method": "delete", "endpoint": ["https://api.northpass.com/v2/properties/school"], "req_param": "", "inclusions": [null]}}, +{}, +{"Fill school properties with values": {"method": "patch", "endpoint": ["https://api.northpass.com/v2/properties/school"], "req_param": "", "inclusions": [null]}}, +{} +] \ No newline at end of file