* feat: add language selection chore: update tests so we have less error message test: update test * test: update tests * chore: remove duplicate translation * chore: lint for console * chore: remove comments * chore: make sure the affect url frame refresh after the language selection change * chore: add whole_course_translation and language to courseware meta (#1305) * feat: Add feedback widget UI mock Add unit tests Fix snapshot Clean Sequence component logEvent calls Clean unit test Put feedback widget behind whole course translation flag Fix useFeedbackWidget test * chore: add src and dest translation * feat: first iteration of plugin translation chore: update plugin instruction * feat: Connect FeedbackWidget with backend services (#1325) Connect FeedbackWidget with backend services Move feedback widget to unit translation plugin * feat: Add authentication to WCT feedback endpoints (#1329) * chore: add fetch config and move feedback widget for the plugin chore: rewrite and test the api request chore: rebase chore: update translation feedback chore: test chore: add more tests * chore: rebase * chore: update requested change * chore: update package * chore: upgrade frontend-lib-special-exams and frontend-lib-learning-assistant * chore: update tests * chore: remove unneeded package * chore: update example config * chore: add source-map-loader * fix: feedback widget render error after submit feedback (#1335) * fix: feedback widget render error after submit feedback * fix: widget logic --------- Co-authored-by: Rodrigo Martin <rodrigom_94@hotmail.com>
763 lines
26 KiB
JSON
763 lines
26 KiB
JSON
{
|
|
"consumer": {
|
|
"name": "frontend-app-learning"
|
|
},
|
|
"provider": {
|
|
"name": "lms"
|
|
},
|
|
"interactions": [
|
|
{
|
|
"description": "a request to fetch tab",
|
|
"providerState": "Tab data exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/course_home/v1/course_metadata/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"can_show_upgrade_sock": false,
|
|
"verified_mode": {
|
|
"access_expiration_date": null,
|
|
"currency": "USD",
|
|
"currency_symbol": "$",
|
|
"price": 149,
|
|
"sku": "8CF08E5",
|
|
"upgrade_url": "http://localhost:18130/basket/add/?sku=8CF08E5"
|
|
},
|
|
"celebrations": {
|
|
"first_section": false,
|
|
"streak_length_to_celebrate": null,
|
|
"streak_discount_enabled": false
|
|
},
|
|
"course_access": {
|
|
"has_access": true,
|
|
"error_code": null,
|
|
"developer_message": null,
|
|
"user_message": null,
|
|
"additional_context_user_message": null,
|
|
"user_fragment": null
|
|
},
|
|
"course_id": "course-v1:edX+DemoX+Demo_Course",
|
|
"is_enrolled": true,
|
|
"is_self_paced": false,
|
|
"is_staff": true,
|
|
"number": "DemoX",
|
|
"org": "edX",
|
|
"original_user_is_staff": true,
|
|
"start": "2013-02-05T05:00:00Z",
|
|
"tabs": [
|
|
{
|
|
"tab_id": "courseware",
|
|
"title": "Course",
|
|
"url": "http://localhost:2000/course/course-v1:edX+DemoX+Demo_Course/home"
|
|
}
|
|
],
|
|
"title": "Demonstration Course",
|
|
"username": "edx"
|
|
},
|
|
"matchingRules": {
|
|
"$.body.can_show_upgrade_sock": {
|
|
"match": "type"
|
|
},
|
|
"$.body.verified_mode": {
|
|
"match": "type"
|
|
},
|
|
"$.body.celebrations": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_access.has_access": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_id": {
|
|
"match": "regex",
|
|
"regex": "[\\w\\-~.:]"
|
|
},
|
|
"$.body.is_enrolled": {
|
|
"match": "type"
|
|
},
|
|
"$.body.is_self_paced": {
|
|
"match": "type"
|
|
},
|
|
"$.body.is_staff": {
|
|
"match": "type"
|
|
},
|
|
"$.body.number": {
|
|
"match": "type"
|
|
},
|
|
"$.body.org": {
|
|
"match": "type"
|
|
},
|
|
"$.body.original_user_is_staff": {
|
|
"match": "type"
|
|
},
|
|
"$.body.start": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.tabs": {
|
|
"min": 1
|
|
},
|
|
"$.body.tabs[*].*": {
|
|
"match": "type"
|
|
},
|
|
"$.body.title": {
|
|
"match": "type"
|
|
},
|
|
"$.body.username": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to fetch dates tab",
|
|
"providerState": "course date blocks exist for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/course_home/v1/dates/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"dates_banner_info": {
|
|
"missed_deadlines": false,
|
|
"content_type_gating_enabled": false,
|
|
"missed_gated_content": false,
|
|
"verified_upgrade_link": "http://localhost:18130/basket/add/?sku=8CF08E5"
|
|
},
|
|
"course_date_blocks": [
|
|
{
|
|
"assignment_type": null,
|
|
"complete": null,
|
|
"date": "2013-02-05T05:00:00Z",
|
|
"date_type": "verified-upgrade-deadline",
|
|
"description": "You are still eligible to upgrade to a Verified Certificate! Pursue it to highlight the knowledge and skills you gain in this course.",
|
|
"learner_has_access": true,
|
|
"link": "http://localhost:18130/basket/add/?sku=8CF08E5",
|
|
"link_text": "Upgrade to Verified Certificate",
|
|
"title": "Verification Upgrade Deadline",
|
|
"extra_info": null,
|
|
"first_component_block_id": ""
|
|
}
|
|
],
|
|
"has_ended": false,
|
|
"learner_is_full_access": true,
|
|
"user_timezone": null
|
|
},
|
|
"matchingRules": {
|
|
"$.body.dates_banner_info": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_date_blocks": {
|
|
"min": 1
|
|
},
|
|
"$.body.course_date_blocks[*].*": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_date_blocks[*].date": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.course_date_blocks[*].date_type": {
|
|
"match": "regex",
|
|
"regex": "^(event|todays-date|course-start-date|course-end-date|assignment-due-date|course-expired-date|certificate-available-date|verified-upgrade-deadline|verification-deadline-date)$"
|
|
},
|
|
"$.body.has_ended": {
|
|
"match": "type"
|
|
},
|
|
"$.body.learner_is_full_access": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get course blocks",
|
|
"providerState": "Blocks data exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/courses/v2/blocks/",
|
|
"query": "course_id=course-v1%3AedX%2BDemoX%2BDemo_Course&username=Mock+User&depth=3&requested_fields=children%2Ceffort_activities%2Ceffort_time%2Cshow_gated_sections%2Cgraded%2Cspecial_exam_info%2Chas_scheduled_content"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"root": "block-v1:edX+DemoX+Demo_Course+type@course+block@course",
|
|
"blocks": {
|
|
"block-v1:edX+DemoX+Demo_Course+type@course+block@course": {
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@course+block@course",
|
|
"block_id": "course",
|
|
"lms_web_url": "/courses/course-v1:edX+DemoX+Demo_Course/jump_to/block-v1:edX+DemoX+Demo_Course+type@course+block@course",
|
|
"legacy_web_url": "/courses/course-v1:edX+DemoX+Demo_Course/jump_to/block-v1:edX+DemoX+Demo_Course+type@course+block@course?experience=legacy",
|
|
"student_view_url": "/xblock/block-v1:edX+DemoX+Demo_Course+type@course+block@course",
|
|
"type": "course",
|
|
"display_name": "Demonstration Course"
|
|
}
|
|
}
|
|
},
|
|
"matchingRules": {
|
|
"$.body.root": {
|
|
"match": "type"
|
|
},
|
|
"$.body.blocks": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get course metadata",
|
|
"providerState": "course metadata exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/courseware/course/course-v1:edX+DemoX+Demo_Course",
|
|
"query": "browser_timezone=Asia%2FKarachi"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"access_expiration": {
|
|
"expiration_date": "2013-02-05T05:00:00Z",
|
|
"masquerading_expired_course": false,
|
|
"upgrade_deadline": "2013-02-05T05:00:00Z",
|
|
"upgrade_url": "link"
|
|
},
|
|
"can_show_upgrade_sock": false,
|
|
"content_type_gating_enabled": false,
|
|
"end": "2013-02-05T05:00:00Z",
|
|
"enrollment": {
|
|
"mode": "audit",
|
|
"is_active": true
|
|
},
|
|
"enrollment_start": "2013-02-05T05:00:00Z",
|
|
"enrollment_end": "2013-02-05T05:00:00Z",
|
|
"id": "course-v1:edX+DemoX+Demo_Course",
|
|
"license": "all-rights-reserved",
|
|
"name": "Demonstration Course",
|
|
"number": "DemoX",
|
|
"offer": {
|
|
"code": "code",
|
|
"expiration_date": "2013-02-05T05:00:00Z",
|
|
"original_price": "$99",
|
|
"discounted_price": "$99",
|
|
"percentage": 50,
|
|
"upgrade_url": "url"
|
|
},
|
|
"org": "edX",
|
|
"related_programs": null,
|
|
"short_description": "",
|
|
"start": "2013-02-05T05:00:00Z",
|
|
"tabs": [
|
|
{
|
|
"title": "Course",
|
|
"slug": "courseware",
|
|
"priority": 0,
|
|
"type": "courseware",
|
|
"url": "http://localhost:2000/course/course-v1:edX+DemoX+Demo_Course/home"
|
|
}
|
|
],
|
|
"user_timezone": null,
|
|
"verified_mode": {
|
|
"access_expiration_date": "2013-02-05T05:00:00Z",
|
|
"currency": "USD",
|
|
"currency_symbol": "$",
|
|
"price": 149,
|
|
"sku": "8CF08E5",
|
|
"upgrade_url": "http://localhost:18130/basket/add/?sku=8CF08E5"
|
|
},
|
|
"show_calculator": false,
|
|
"original_user_is_staff": true,
|
|
"is_staff": true,
|
|
"course_access": {
|
|
"has_access": true,
|
|
"error_code": null,
|
|
"developer_message": null,
|
|
"user_message": null,
|
|
"additional_context_user_message": null,
|
|
"user_fragment": null
|
|
},
|
|
"notes": {
|
|
"enabled": false,
|
|
"visible": true
|
|
},
|
|
"marketing_url": null,
|
|
"celebrations": {
|
|
"first_section": false,
|
|
"streak_length_to_celebrate": null,
|
|
"streak_discount_enabled": false
|
|
},
|
|
"user_has_passing_grade": false,
|
|
"course_exit_page_is_active": false,
|
|
"certificate_data": {
|
|
"cert_status": "audit_passing",
|
|
"cert_web_view_url": null,
|
|
"certificate_available_date": null
|
|
},
|
|
"verify_identity_url": null,
|
|
"verification_status": "none",
|
|
"linkedin_add_to_profile_url": null,
|
|
"user_needs_integrity_signature": false,
|
|
"learning_assistant_enabled": false,
|
|
"language": "en",
|
|
"whole_course_translation_enabled": false
|
|
},
|
|
"matchingRules": {
|
|
"$.body.access_expiration.expiration_date": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.access_expiration.masquerading_expired_course": {
|
|
"match": "type"
|
|
},
|
|
"$.body.access_expiration.upgrade_deadline": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.access_expiration.upgrade_url": {
|
|
"match": "type"
|
|
},
|
|
"$.body.can_show_upgrade_sock": {
|
|
"match": "type"
|
|
},
|
|
"$.body.content_type_gating_enabled": {
|
|
"match": "type"
|
|
},
|
|
"$.body.end": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.enrollment.mode": {
|
|
"match": "regex",
|
|
"regex": "^(audit|verified)$"
|
|
},
|
|
"$.body.enrollment.is_active": {
|
|
"match": "type"
|
|
},
|
|
"$.body.enrollment_start": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.enrollment_end": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.id": {
|
|
"match": "regex",
|
|
"regex": "[\\w\\-~.:]"
|
|
},
|
|
"$.body.license": {
|
|
"match": "type"
|
|
},
|
|
"$.body.name": {
|
|
"match": "type"
|
|
},
|
|
"$.body.number": {
|
|
"match": "type"
|
|
},
|
|
"$.body.offer.code": {
|
|
"match": "type"
|
|
},
|
|
"$.body.offer.expiration_date": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.offer.original_price": {
|
|
"match": "type"
|
|
},
|
|
"$.body.offer.discounted_price": {
|
|
"match": "type"
|
|
},
|
|
"$.body.offer.percentage": {
|
|
"match": "type"
|
|
},
|
|
"$.body.offer.upgrade_url": {
|
|
"match": "type"
|
|
},
|
|
"$.body.org": {
|
|
"match": "type"
|
|
},
|
|
"$.body.short_description": {
|
|
"match": "type"
|
|
},
|
|
"$.body.start": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.tabs": {
|
|
"min": 1
|
|
},
|
|
"$.body.tabs[*].*": {
|
|
"match": "type"
|
|
},
|
|
"$.body.verified_mode": {
|
|
"match": "type"
|
|
},
|
|
"$.body.verified_mode.access_expiration_date": {
|
|
"match": "regex",
|
|
"regex": "^(?:[1-9]\\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:Z|[+-][01]\\d:[0-5]\\d)$"
|
|
},
|
|
"$.body.show_calculator": {
|
|
"match": "type"
|
|
},
|
|
"$.body.original_user_is_staff": {
|
|
"match": "type"
|
|
},
|
|
"$.body.is_staff": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_access": {
|
|
"match": "type"
|
|
},
|
|
"$.body.notes.enabled": {
|
|
"match": "type"
|
|
},
|
|
"$.body.notes.visible": {
|
|
"match": "type"
|
|
},
|
|
"$.body.celebrations.first_section": {
|
|
"match": "type"
|
|
},
|
|
"$.body.celebrations.streak_discount_enabled": {
|
|
"match": "type"
|
|
},
|
|
"$.body.user_has_passing_grade": {
|
|
"match": "type"
|
|
},
|
|
"$.body.course_exit_page_is_active": {
|
|
"match": "type"
|
|
},
|
|
"$.body.certificate_data.cert_status": {
|
|
"match": "type"
|
|
},
|
|
"$.body.verification_status": {
|
|
"match": "type"
|
|
},
|
|
"$.body.user_needs_integrity_signature": {
|
|
"match": "type"
|
|
},
|
|
"$.body.learning_assistant_enabled": {
|
|
"match": "type"
|
|
},
|
|
"$.body.whole_course_translation_enabled": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get sequence metadata",
|
|
"providerState": "sequence metadata data exists for sequence_id block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/courseware/sequence/block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"items": [
|
|
{
|
|
"content": "",
|
|
"page_title": "Pointing on a Picture",
|
|
"type": "problem",
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@vertical+block@2152d4a4aadc4cb0af5256394a3d1fc7",
|
|
"bookmarked": false,
|
|
"path": "Example Week 1: Getting Started > Homework - Question Styles > Pointing on a Picture",
|
|
"graded": true,
|
|
"contains_content_type_gated_content": false,
|
|
"href": ""
|
|
}
|
|
],
|
|
"item_id": "block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions",
|
|
"is_time_limited": false,
|
|
"is_proctored": false,
|
|
"is_hidden_after_due": true,
|
|
"position": null,
|
|
"tag": "sequential",
|
|
"banner_text": null,
|
|
"save_position": false,
|
|
"show_completion": false,
|
|
"gated_content": {
|
|
"prereq_id": null,
|
|
"prereq_url": null,
|
|
"prereq_section_name": null,
|
|
"gated": false,
|
|
"gated_section_name": "Homework - Question Styles"
|
|
},
|
|
"display_name": "Homework - Question Styles",
|
|
"format": "Homework"
|
|
},
|
|
"matchingRules": {
|
|
"$.body.items": {
|
|
"min": 1
|
|
},
|
|
"$.body.items[*].*": {
|
|
"match": "type"
|
|
},
|
|
"$.body.item_id": {
|
|
"match": "type"
|
|
},
|
|
"$.body.is_time_limited": {
|
|
"match": "type"
|
|
},
|
|
"$.body.is_proctored": {
|
|
"match": "type"
|
|
},
|
|
"$.body.tag": {
|
|
"match": "type"
|
|
},
|
|
"$.body.save_position": {
|
|
"match": "type"
|
|
},
|
|
"$.body.show_completion": {
|
|
"match": "type"
|
|
},
|
|
"$.body.gated_content": {
|
|
"match": "type"
|
|
},
|
|
"$.body.display_name": {
|
|
"match": "type"
|
|
},
|
|
"$.body.format": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to set sequence position against activeUnitIndex",
|
|
"providerState": "sequence position data exists for course_id course-v1:edX+DemoX+Demo_Course, sequence_id block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions and activeUnitIndex 0",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/courses/course-v1:edX+DemoX+Demo_Course/xblock/block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions/handler/goto_position",
|
|
"body": {
|
|
"position": 1
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"success": true
|
|
},
|
|
"matchingRules": {
|
|
"$.body.success": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get completion block",
|
|
"providerState": "completion block data exists for course_id course-v1:edX+DemoX+Demo_Course, sequence_id block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions and usageId block-v1:edX+DemoX+Demo_Course+type@vertical+block@47dbd5f836544e61877a483c0b75606c",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/courses/course-v1:edX+DemoX+Demo_Course/xblock/block-v1:edX+DemoX+Demo_Course+type@sequential+block@basic_questions/handler/get_completion",
|
|
"body": {
|
|
"usage_key": "block-v1:edX+DemoX+Demo_Course+type@vertical+block@47dbd5f836544e61877a483c0b75606c"
|
|
}
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"complete": true
|
|
},
|
|
"matchingRules": {
|
|
"$.body.complete": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get Resume block",
|
|
"providerState": "Resume block exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/courseware/resume/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"block_id": "642fadf46d074aabb637f20af320fb31",
|
|
"section_id": "642fadf46d074aabb637f20af320fb87",
|
|
"unit_id": "642fadf46d074aabb637f20af320fb99"
|
|
},
|
|
"matchingRules": {
|
|
"$.body.block_id": {
|
|
"match": "type"
|
|
},
|
|
"$.body.section_id": {
|
|
"match": "type"
|
|
},
|
|
"$.body.unit_id": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to send activation email",
|
|
"providerState": "A logged-in user may or may not be active",
|
|
"request": {
|
|
"method": "POST",
|
|
"path": "/api/send_account_activation_email"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get a learning sequence outline",
|
|
"providerState": "Learning sequence outline exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/learning_sequences/v1/course_outline/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"course_key": "block-v1:edX+DemoX+Demo_Course",
|
|
"title": "Demo Course",
|
|
"outline": {
|
|
"sections": [
|
|
|
|
],
|
|
"sequences": [
|
|
|
|
]
|
|
}
|
|
},
|
|
"matchingRules": {
|
|
"$.body.course_key": {
|
|
"match": "type"
|
|
},
|
|
"$.body.title": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get an outline",
|
|
"providerState": "Outline exists for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/learning_sequences/v1/course_outline/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"course_key": "block-v1:edX+DemoX+Demo_Course",
|
|
"title": "Demo Course",
|
|
"outline": {
|
|
"sections": [
|
|
|
|
],
|
|
"sequences": {
|
|
}
|
|
}
|
|
},
|
|
"matchingRules": {
|
|
"$.body.course_key": {
|
|
"match": "type"
|
|
},
|
|
"$.body.title": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"description": "a request to get an outline",
|
|
"providerState": "Outline exists with inaccessible sequences for course_id course-v1:edX+DemoX+Demo_Course",
|
|
"request": {
|
|
"method": "GET",
|
|
"path": "/api/learning_sequences/v1/course_outline/course-v1:edX+DemoX+Demo_Course"
|
|
},
|
|
"response": {
|
|
"status": 200,
|
|
"headers": {
|
|
},
|
|
"body": {
|
|
"course_key": "block-v1:edX+DemoX+Demo_Course",
|
|
"title": "Demo Course",
|
|
"outline": {
|
|
"sections": [
|
|
{
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@chapter+block@partial",
|
|
"title": "Partially accessible",
|
|
"sequence_ids": [
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@accessible",
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope1"
|
|
]
|
|
},
|
|
{
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@chapter+block@nope",
|
|
"title": "Wholly inaccessible",
|
|
"sequence_ids": [
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope2"
|
|
]
|
|
}
|
|
],
|
|
"sequences": {
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@accessible": {
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@sequential+block@accessible",
|
|
"title": "Can access",
|
|
"accessible": true
|
|
},
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope1": {
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope1",
|
|
"title": "Cannot access",
|
|
"accessible": false
|
|
},
|
|
"block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope2": {
|
|
"id": "block-v1:edX+DemoX+Demo_Course+type@sequential+block@nope2",
|
|
"title": "Still cannot access",
|
|
"accessible": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"matchingRules": {
|
|
"$.body.course_key": {
|
|
"match": "type"
|
|
},
|
|
"$.body.title": {
|
|
"match": "type"
|
|
},
|
|
"$.body.outline": {
|
|
"match": "type"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"metadata": {
|
|
"pactSpecification": {
|
|
"version": "2.0.0"
|
|
}
|
|
}
|
|
}
|