feat: learner home get suggested courses (#31004)
* feat: get suggested courses * style: run black * docs: update suggested courses mock * docs: remove cardID from mock * docs: fix mock course.title to course.courseName * docs: fix mock course.bannerUrl to bannerImgSrc * docs: fix mock provider to courseProvider * docs: remove old mock courseProvider fields * docs: fix mock "grades" to "gradeData" * docs: fix mock remove courseRun.lastEnrolled * docs: fix mock add enrollment.lastEnrolled * docs: mock remove enrollment.isStarted * docs: mock fix bad nesting in courseRun * docs: mock certificates to certificate * docs: mock remove certificate.isAvailable * docs: mock remove entitlement.isEntitlement * docs: mock add entitlement.expirationDate * docs: mock fix some entitlement inconsistencies * docs: mock remove entitlement.canViewCourse * docs: mock nest relatedPrograms under programs * fix: return null for missing resumeUrl * test: return null for missing resumeUrl * refactor: update suggested course fields * refactor: update related programs fields * docs: remove entitlement.expirationDate from mock Co-authored-by: nsprenkle <nsprenkle@2u.com>
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
{
|
||||
"courses": [
|
||||
{
|
||||
"cardId": "card-id0",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
@@ -27,7 +26,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
@@ -40,44 +40,42 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number0-course-id0",
|
||||
"lastEnrolled": "2022-09-06T15:20:57.513Z"
|
||||
"courseId": "course-number0-course-id0"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 0",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 0",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number0"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id1",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -92,10 +90,9 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number1-course-id1",
|
||||
"lastEnrolled": "2022-09-05T15:20:57.513Z"
|
||||
"courseId": "course-number1-course-id1"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
@@ -116,33 +113,33 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 1",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 1",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number1"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id2",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -157,8 +154,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number2-course-id2",
|
||||
"lastEnrolled": "2022-09-04T15:20:57.513Z"
|
||||
"courseId": "course-number2-course-id2"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -174,26 +170,28 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 2",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 2",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number2"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id3",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -208,8 +206,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number3-course-id3",
|
||||
"lastEnrolled": "2022-09-03T15:20:57.513Z"
|
||||
"courseId": "course-number3-course-id3"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -225,50 +222,50 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 3",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 3",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number3"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id4",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -283,8 +280,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number4-course-id4",
|
||||
"lastEnrolled": "2022-09-02T15:20:57.513Z"
|
||||
"courseId": "course-number4-course-id4"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -300,40 +296,40 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 4",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 4",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number4"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id5",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -348,8 +344,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number5-course-id5",
|
||||
"lastEnrolled": "2022-09-01T15:20:57.513Z"
|
||||
"courseId": "course-number5-course-id5"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -365,26 +360,28 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 5",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 5",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number5"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id6",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -399,8 +396,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number6-course-id6",
|
||||
"lastEnrolled": "2022-08-31T15:20:57.513Z"
|
||||
"courseId": "course-number6-course-id6"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -417,55 +413,54 @@
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false,
|
||||
"isStarted": true
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 6",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 6",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number6"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id7",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isStarted": true,
|
||||
"isArchived": false,
|
||||
"startDate": "11/11/3030",
|
||||
"endDate": "11/11/4040",
|
||||
@@ -475,11 +470,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseRun": {
|
||||
"isStarted": true
|
||||
},
|
||||
"courseId": "course-number7-course-id7",
|
||||
"lastEnrolled": "2022-08-30T15:20:57.513Z"
|
||||
"courseId": "course-number7-course-id7"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -496,45 +487,44 @@
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false,
|
||||
"isStarted": true
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 7",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 7",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number7"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id8",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isStarted": true,
|
||||
"isArchived": false,
|
||||
"startDate": "11/11/3030",
|
||||
"endDate": "11/11/4040",
|
||||
@@ -544,11 +534,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseRun": {
|
||||
"isStarted": true
|
||||
},
|
||||
"courseId": "course-number8-course-id8",
|
||||
"lastEnrolled": "2022-08-29T15:20:57.514Z"
|
||||
"courseId": "course-number8-course-id8"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -565,31 +551,32 @@
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false,
|
||||
"isStarted": true
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 8",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 8",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number8"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id9",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isStarted": true,
|
||||
"isArchived": false,
|
||||
"startDate": "11/11/3030",
|
||||
"endDate": "11/11/4040",
|
||||
@@ -599,12 +586,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
"endDate": "11/11/2000"
|
||||
},
|
||||
"courseId": "course-number9-course-id9",
|
||||
"lastEnrolled": "2022-08-28T15:20:57.514Z"
|
||||
"courseId": "course-number9-course-id9"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -621,74 +603,67 @@
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false,
|
||||
"isStarted": true
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grade": {
|
||||
"isPassing": false
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 9",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 9",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number9"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id10",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isArchived": false,
|
||||
"isStarted": true,
|
||||
"isArchived": true,
|
||||
"startDate": "11/11/3030",
|
||||
"endDate": "11/11/4040",
|
||||
"endDate": "11/11/2000",
|
||||
"minPassingGrade": 70,
|
||||
"homeUrl": "edx.com/courses/my-course-url/home",
|
||||
"marketingUrl": "edx.com/courses/my-course-url/marketing",
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
"isArchived": true,
|
||||
"endDate": "11/11/2000"
|
||||
},
|
||||
"courseId": "course-number10-course-id10",
|
||||
"lastEnrolled": "2022-08-27T15:20:57.514Z"
|
||||
"courseId": "course-number10-course-id10"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/2000",
|
||||
@@ -705,43 +680,42 @@
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": false,
|
||||
"isStarted": true
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grade": {
|
||||
"isPassing": false
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 10",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 10",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number10"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id11",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -759,9 +733,10 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
@@ -779,20 +754,20 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number11-course-id11",
|
||||
"lastEnrolled": "2022-08-26T15:20:57.514Z"
|
||||
"courseId": "course-number11-course-id11"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 11",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 11",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number11"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id12",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -807,8 +782,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number12-course-id12",
|
||||
"lastEnrolled": "2022-08-25T15:20:57.514Z"
|
||||
"courseId": "course-number12-course-id12"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -824,50 +798,50 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 12",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 12",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number12"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id13",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -882,8 +856,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number13-course-id13",
|
||||
"lastEnrolled": "2022-08-24T15:20:57.514Z"
|
||||
"courseId": "course-number13-course-id13"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -899,40 +872,40 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 13",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 13",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number13"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id14",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": false
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -947,8 +920,7 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number14-course-id14",
|
||||
"lastEnrolled": "2022-08-23T15:20:57.514Z"
|
||||
"courseId": "course-number14-course-id14"
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -964,26 +936,28 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 14",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 14",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number14"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id15",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": false
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1001,7 +975,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1014,51 +989,49 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number15-course-id15",
|
||||
"lastEnrolled": "2022-08-22T15:20:57.514Z"
|
||||
"courseId": "course-number15-course-id15"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 15",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 15",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number15"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id16",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1076,7 +1049,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1089,42 +1063,39 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number16-course-id16",
|
||||
"lastEnrolled": "2022-08-21T15:20:57.514Z"
|
||||
"courseId": "course-number16-course-id16"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/3030",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview",
|
||||
"isAvailable": false
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 16",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 16",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number16"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id17",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1142,7 +1113,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1155,27 +1127,27 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number17-course-id17",
|
||||
"lastEnrolled": "2022-08-20T15:20:57.514Z"
|
||||
"courseId": "course-number17-course-id17"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": true,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 17",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 17",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number17"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id18",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1193,7 +1165,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1206,52 +1179,49 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number18-course-id18",
|
||||
"lastEnrolled": "2022-08-19T15:20:57.514Z"
|
||||
"courseId": "course-number18-course-id18"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/2000",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": true,
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"isAvailable": true
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 18",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 18",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number18"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id19",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1269,7 +1239,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1282,42 +1253,39 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number19-course-id19",
|
||||
"lastEnrolled": "2022-08-18T15:20:57.514Z"
|
||||
"courseId": "course-number19-course-id19"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/2000",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": true,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview",
|
||||
"isAvailable": true
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 19",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 19",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number19"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id20",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": null,
|
||||
@@ -1335,7 +1303,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1348,28 +1317,27 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number20-course-id20",
|
||||
"lastEnrolled": "2022-08-17T15:20:57.514Z"
|
||||
"courseId": "course-number20-course-id20"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/2000",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": true,
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"isAvailable": true
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 20",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 20",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number20"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id21",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": {
|
||||
@@ -1401,10 +1369,8 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/3030",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": true
|
||||
@@ -1423,7 +1389,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
@@ -1436,51 +1403,49 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number21-course-id21",
|
||||
"lastEnrolled": "2022-08-16T15:20:57.514Z"
|
||||
"courseId": "course-number21-course-id21"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 21",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 21",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number21"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id22",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": {
|
||||
@@ -1512,10 +1477,8 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/3030",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": true
|
||||
@@ -1534,7 +1497,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1547,41 +1511,39 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number22-course-id22",
|
||||
"lastEnrolled": "2022-08-15T15:20:57.514Z"
|
||||
"courseId": "course-number22-course-id22"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 22",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 22",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number22"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id23",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": false
|
||||
},
|
||||
"entitlement": {
|
||||
@@ -1613,10 +1575,8 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/3030",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": true
|
||||
@@ -1635,7 +1595,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1648,27 +1609,27 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number23-course-id23",
|
||||
"lastEnrolled": "2022-08-14T15:20:57.514Z"
|
||||
"courseId": "course-number23-course-id23"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 23",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 23",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number23"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id24",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": {
|
||||
@@ -1700,10 +1661,8 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": true
|
||||
@@ -1722,7 +1681,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1735,60 +1695,56 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number24-course-id24",
|
||||
"lastEnrolled": "2022-08-13T15:20:57.514Z"
|
||||
"courseId": "course-number24-course-id24"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 24",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 24",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number24"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id25",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": false
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-4",
|
||||
"availableSessions": null,
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": false
|
||||
@@ -1807,7 +1763,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1820,50 +1777,46 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number25-course-id25",
|
||||
"lastEnrolled": "2022-08-12T15:20:57.514Z"
|
||||
"courseId": "course-number25-course-id25"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 25",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 25",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number25"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id26",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-5",
|
||||
"availableSessions": null,
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": false
|
||||
@@ -1882,7 +1835,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1895,40 +1849,37 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number26-course-id26",
|
||||
"lastEnrolled": "2022-08-11T15:20:57.514Z"
|
||||
"courseId": "course-number26-course-id26"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/2000",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": true,
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"isAvailable": true
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"title": "Course Name 26",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 26",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number26"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id27",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": false
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-6",
|
||||
"availableSessions": null,
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": false,
|
||||
"canViewCourse": true,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"isExpired": false
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isExpired": false,
|
||||
"isFulfilled": true,
|
||||
"isRefundable": false
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -1944,7 +1895,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -1957,63 +1909,59 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number27-course-id27",
|
||||
"lastEnrolled": "2022-08-10T15:20:57.514Z"
|
||||
"courseId": "course-number27-course-id27"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": null,
|
||||
"isRestricted": false,
|
||||
"isEarned": false,
|
||||
"isDownloadable": false,
|
||||
"certPreviewUrl": "edx.com/courses/my-course-url/cert-preview"
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 27",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseName": "Course Name 27",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"courseNumber": "course-number27"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id28",
|
||||
"grades": {
|
||||
"gradeData": {
|
||||
"isPassing": true
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-7",
|
||||
"availableSessions": null,
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isRefundable": false,
|
||||
"isFulfilled": true
|
||||
"isFulfilled": true,
|
||||
"isRefundable": false
|
||||
},
|
||||
"enrollment": {
|
||||
"accessExpirationDate": "11/11/3030",
|
||||
@@ -2029,7 +1977,8 @@
|
||||
"isEmailEnabled": false,
|
||||
"hasOptedOutOfEmail": false,
|
||||
"isEnrolled": true,
|
||||
"isVerified": true
|
||||
"isVerified": true,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"courseRun": {
|
||||
"isStarted": true,
|
||||
@@ -2042,41 +1991,38 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number28-course-id28",
|
||||
"lastEnrolled": "2022-08-09T15:20:57.514Z"
|
||||
"courseId": "course-number28-course-id28"
|
||||
},
|
||||
"certificates": {
|
||||
"certificate": {
|
||||
"availableDate": "11/11/2000",
|
||||
"isRestricted": false,
|
||||
"isEarned": true,
|
||||
"isDownloadable": true,
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg",
|
||||
"isAvailable": true
|
||||
"certPreviewUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"title": "Course Name 28",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseName": "Course Name 28",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg",
|
||||
"courseNumber": "course-number28"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id100",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2094,8 +2040,8 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-10",
|
||||
@@ -2126,48 +2072,45 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/3030",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number100",
|
||||
"title": "Course Name 100",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 100",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id101",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2185,8 +2128,8 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-11",
|
||||
@@ -2217,38 +2160,35 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "Sat Nov 05 2022",
|
||||
"changeDeadline": "11/05/2022",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "MIT",
|
||||
"website": "www.mit.edu",
|
||||
"email": "support@mit.edu"
|
||||
"courseProvider": {
|
||||
"name": "MIT"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number101",
|
||||
"title": "Course Name 101",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg"
|
||||
"courseName": "Course Name 101",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id102",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2266,8 +2206,8 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-12",
|
||||
@@ -2298,24 +2238,23 @@
|
||||
"courseId": "course-number1004-course-id1004"
|
||||
}
|
||||
],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": false,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": null,
|
||||
"courseProvider": null,
|
||||
"course": {
|
||||
"courseNumber": "course-number102",
|
||||
"title": "Course Name 102",
|
||||
"bannerUrl": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg"
|
||||
"courseName": "Course Name 102",
|
||||
"bannerImgSrc": "https://courses.edx.org/asset-v1:USMx+LDT200x+2T2021+type@thumbnail+block@course_image-375x200.jpg"
|
||||
},
|
||||
"relatedPrograms": []
|
||||
"programs": {
|
||||
"relatedPrograms": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id103",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2333,54 +2272,51 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-13",
|
||||
"availableSessions": [],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": true,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number103",
|
||||
"title": "Course Name 103",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 103",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id104",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2398,54 +2334,51 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-14",
|
||||
"availableSessions": [],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": true,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number104",
|
||||
"title": "Course Name 104",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 104",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id105",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2463,8 +2396,8 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isArchived": false,
|
||||
@@ -2476,54 +2409,50 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number15-course-id15",
|
||||
"lastEnrolled": "2022-09-06T15:20:57.513Z"
|
||||
"courseId": "course-number15-course-id15"
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-15",
|
||||
"availableSessions": [],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": true,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number105",
|
||||
"title": "Course Name 105",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 105",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id106",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2541,54 +2470,51 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": null,
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-16",
|
||||
"availableSessions": [],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": true,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number106",
|
||||
"title": "Course Name 106",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 106",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"cardId": "card-id107",
|
||||
"enrollment": {
|
||||
"accessExpirationDate": null,
|
||||
"canUpgrade": false,
|
||||
@@ -2606,8 +2532,8 @@
|
||||
"isVerified": false,
|
||||
"lastEnrolled": null
|
||||
},
|
||||
"grades": null,
|
||||
"certificates": null,
|
||||
"gradeData": null,
|
||||
"certificate": null,
|
||||
"courseRun": {
|
||||
"isStarted": false,
|
||||
"isArchived": false,
|
||||
@@ -2619,51 +2545,48 @@
|
||||
"progressUrl": "edx.com/courses/my-course-url/progress",
|
||||
"unenrollUrl": "edx.com/courses/my-course-url/unenroll",
|
||||
"resumeUrl": "edx.com/courses/my-course-url/resume",
|
||||
"courseId": "course-number15-course-id15",
|
||||
"lastEnrolled": "2022-09-06T15:20:57.513Z"
|
||||
"courseId": "course-number15-course-id15"
|
||||
},
|
||||
"entitlement": {
|
||||
"uuid": "entitlement-course-uuid-17",
|
||||
"availableSessions": [],
|
||||
"canViewCourse": false,
|
||||
"changeDeadline": "11/11/2000",
|
||||
"enrollmentUrl": "/entitlement-enrollment",
|
||||
"isEntitlement": true,
|
||||
"isExpired": true,
|
||||
"isFulfilled": false,
|
||||
"isRefundable": true
|
||||
},
|
||||
"provider": {
|
||||
"name": "edX Course Provider",
|
||||
"website": "www.edx.com",
|
||||
"email": "support@edx.com"
|
||||
"courseProvider": {
|
||||
"name": "edX Course Provider"
|
||||
},
|
||||
"course": {
|
||||
"courseNumber": "course-number107",
|
||||
"title": "Course Name 107",
|
||||
"bannerUrl": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
"courseName": "Course Name 107",
|
||||
"bannerImgSrc": "https://edx-cdn.org/v3/prod/logo.svg"
|
||||
},
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
"programs": {
|
||||
"relatedPrograms": [
|
||||
{
|
||||
"provider": "HarvardX",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/course/image/327c8e4f-315a-417b-9857-046dfc90c243-677b97464958.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/44022f13-20df-4666-9111-cede3e5dc5b6-770e00385e7e.png",
|
||||
"title": "Relativity in Modern Mechanics",
|
||||
"programUrl": "www.edx/my-program",
|
||||
"programType": "MicroBachelors Program",
|
||||
"numberOfCourses": 3
|
||||
},
|
||||
{
|
||||
"provider": "University of Maryland",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Pandering for Modern Professionals",
|
||||
"programUrl": "www.edx/my-program-2",
|
||||
"programType": "MicroBachelors Program",
|
||||
"programTypeUrl": "www.edx/my-program-type",
|
||||
"numberOfCourses": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"emailConfirmation": {
|
||||
@@ -2681,27 +2604,27 @@
|
||||
},
|
||||
"suggestedCourses": [
|
||||
{
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Suggested course 1",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"logoImgSrc": null,
|
||||
"courseName": "Suggested course 1",
|
||||
"courseUrl": "www.edx/suggested-course"
|
||||
},
|
||||
{
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Suggested course 2",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"logoImgSrc": null,
|
||||
"courseName": "Suggested course 2",
|
||||
"courseUrl": "www.edx/suggested-course"
|
||||
},
|
||||
{
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Suggested course 3",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"logoImgSrc": null,
|
||||
"courseName": "Suggested course 3",
|
||||
"courseUrl": "www.edx/suggested-course"
|
||||
},
|
||||
{
|
||||
"bannerUrl": "https://prod-discovery.edx-cdn.org/media/programs/banner_images/9a310b98-8f27-439e-be85-12d6460245c9-f2efca129273.small.jpg",
|
||||
"logoUrl": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"title": "Suggested course 4",
|
||||
"bannerImgSrc": "https://prod-discovery.edx-cdn.org/organization/certificate_logos/b9dc96da-b3fc-45a6-b6b7-b8e12eb79335-ac60112330e3.png",
|
||||
"logoImgSrc": null,
|
||||
"courseName": "Suggested course 4",
|
||||
"courseUrl": "www.edx/suggested-course"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -111,7 +111,10 @@ class CourseRunSerializer(serializers.Serializer):
|
||||
return f"{ecommerce_payment_page}?sku={verified_sku}"
|
||||
|
||||
def get_resumeUrl(self, instance):
|
||||
return self.context.get("resume_course_urls", {}).get(instance.course_id)
|
||||
resumeUrl = self.context.get("resume_course_urls", {}).get(instance.course_id)
|
||||
|
||||
# Return None if missing or empty string
|
||||
return resumeUrl if bool(resumeUrl) else None
|
||||
|
||||
|
||||
class CoursewareAccessSerializer(serializers.Serializer):
|
||||
@@ -300,6 +303,7 @@ class AvailableEntitlementSessionSerializer(serializers.Serializer):
|
||||
|
||||
class EntitlementSerializer(serializers.Serializer):
|
||||
"""Entitlement info"""
|
||||
|
||||
requires_context = True
|
||||
|
||||
availableSessions = serializers.SerializerMethodField()
|
||||
@@ -341,8 +345,8 @@ class EntitlementSerializer(serializers.Serializer):
|
||||
class RelatedProgramSerializer(serializers.Serializer):
|
||||
"""Related programs information"""
|
||||
|
||||
bannerUrl = serializers.URLField(source="banner_image.small.url")
|
||||
logoUrl = serializers.SerializerMethodField()
|
||||
bannerImgSrc = serializers.URLField(source="banner_image.small.url")
|
||||
logoImgSrc = serializers.SerializerMethodField()
|
||||
numberOfCourses = serializers.SerializerMethodField()
|
||||
programType = serializers.CharField(source="type")
|
||||
programUrl = serializers.SerializerMethodField()
|
||||
@@ -352,7 +356,7 @@ class RelatedProgramSerializer(serializers.Serializer):
|
||||
def get_numberOfCourses(self, instance):
|
||||
return len(instance["courses"])
|
||||
|
||||
def get_logoUrl(self, instance):
|
||||
def get_logoImgSrc(self, instance):
|
||||
return (
|
||||
instance["authoring_organizations"][0].get("logo_image_url")
|
||||
if instance.get("authoring_organizations")
|
||||
@@ -422,8 +426,10 @@ class LearnerEnrollmentSerializer(serializers.Serializer):
|
||||
"""
|
||||
If this enrollment is part of a program, include information about the program and related programs
|
||||
"""
|
||||
programs = self.context['programs'].get(str(instance.course_id), [])
|
||||
return ProgramsSerializer({"relatedPrograms": programs}, context=self.context).data
|
||||
programs = self.context["programs"].get(str(instance.course_id), [])
|
||||
return ProgramsSerializer(
|
||||
{"relatedPrograms": programs}, context=self.context
|
||||
).data
|
||||
|
||||
|
||||
class UnfulfilledEntitlementSerializer(serializers.Serializer):
|
||||
@@ -437,21 +443,21 @@ class UnfulfilledEntitlementSerializer(serializers.Serializer):
|
||||
|
||||
# This is the static constant data returned as the 'enrollment' key for all unfulfilled enrollments.
|
||||
STATIC_ENTITLEMENT_ENROLLMENT_DATA = {
|
||||
'accessExpirationDate': None,
|
||||
'isAudit': False,
|
||||
'hasStarted': False,
|
||||
'coursewareAccess': {
|
||||
"accessExpirationDate": None,
|
||||
"isAudit": False,
|
||||
"hasStarted": False,
|
||||
"coursewareAccess": {
|
||||
"hasUnmetPrerequisites": False,
|
||||
"isTooEarly": False,
|
||||
"isStaff": False,
|
||||
},
|
||||
'isVerified': False,
|
||||
'canUpgrade': False,
|
||||
'isAuditAccessExpired': False,
|
||||
'isEmailEnabled': False,
|
||||
'hasOptedOutOfEmail': False,
|
||||
'lastEnrolled': None,
|
||||
'isEnrolled': False,
|
||||
"isVerified": False,
|
||||
"canUpgrade": False,
|
||||
"isAuditAccessExpired": False,
|
||||
"isEmailEnabled": False,
|
||||
"hasOptedOutOfEmail": False,
|
||||
"lastEnrolled": None,
|
||||
"isEnrolled": False,
|
||||
}
|
||||
|
||||
class _PseudoSessionCourseSerializer(serializers.Serializer):
|
||||
@@ -507,12 +513,12 @@ class UnfulfilledEntitlementSerializer(serializers.Serializer):
|
||||
|
||||
|
||||
class SuggestedCourseSerializer(serializers.Serializer):
|
||||
"""Serializer for a suggested course"""
|
||||
"""Serializer for a suggested course from recommendation engine"""
|
||||
|
||||
bannerUrl = serializers.URLField()
|
||||
logoUrl = serializers.URLField()
|
||||
title = serializers.CharField()
|
||||
courseUrl = serializers.URLField()
|
||||
bannerImgSrc = serializers.URLField(source="logo_image_url")
|
||||
logoImgSrc = serializers.URLField(allow_null=True)
|
||||
courseName = serializers.CharField(source="title")
|
||||
courseUrl = serializers.URLField(source="marketing_url")
|
||||
|
||||
|
||||
class EmailConfirmationSerializer(serializers.Serializer):
|
||||
|
||||
@@ -20,7 +20,10 @@ from common.djangoapps.student.tests.factories import (
|
||||
CourseEnrollmentFactory,
|
||||
UserFactory,
|
||||
)
|
||||
from openedx.core.djangoapps.catalog.tests.factories import CourseRunFactory as CatalogCourseRunFactory, ProgramFactory
|
||||
from openedx.core.djangoapps.catalog.tests.factories import (
|
||||
CourseRunFactory as CatalogCourseRunFactory,
|
||||
ProgramFactory,
|
||||
)
|
||||
from openedx.core.djangoapps.content.course_overviews.tests.factories import (
|
||||
CourseOverviewFactory,
|
||||
)
|
||||
@@ -173,26 +176,41 @@ class TestCourseSerializer(LearnerDashboardBaseTest):
|
||||
class TestCourseRunSerializer(LearnerDashboardBaseTest):
|
||||
"""Tests for the CourseRunSerializer"""
|
||||
|
||||
def test_with_data(self):
|
||||
input_data = self.create_test_enrollment()
|
||||
|
||||
input_context = {
|
||||
"resume_course_urls": {input_data.course.id: random_url()},
|
||||
def create_test_context(self, course_id):
|
||||
return {
|
||||
"resume_course_urls": {course_id: random_url()},
|
||||
"ecommerce_payment_page": random_url(),
|
||||
"course_mode_info": {
|
||||
input_data.course.id: {
|
||||
course_id: {
|
||||
"verified_sku": str(uuid4()),
|
||||
"days_for_upsell": randint(0, 14),
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
serializer = CourseRunSerializer(input_data, context=input_context)
|
||||
output = serializer.data
|
||||
def test_with_data(self):
|
||||
input_data = self.create_test_enrollment()
|
||||
input_context = self.create_test_context(input_data.course.id)
|
||||
|
||||
# Serializaiton set up so all fields will have values to make testing easy
|
||||
for key in output:
|
||||
assert output[key] is not None
|
||||
output_data = CourseRunSerializer(input_data, context=input_context).data
|
||||
|
||||
# Serialization set up so all fields will have values to make testing easy
|
||||
for key in output_data:
|
||||
assert output_data[key] is not None
|
||||
|
||||
def test_missing_resume_url(self):
|
||||
# Given a course run
|
||||
input_data = self.create_test_enrollment()
|
||||
input_context = self.create_test_context(input_data.course.id)
|
||||
|
||||
# ... where a user hasn't started
|
||||
input_context["resume_course_urls"][input_data.course.id] = ""
|
||||
|
||||
# When I serialize
|
||||
output_data = CourseRunSerializer(input_data, context=input_context).data
|
||||
|
||||
# Then the resumeUrl is None
|
||||
self.assertIsNone(output_data["resumeUrl"])
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
@@ -685,9 +703,7 @@ class TestProgramsSerializer(TestCase):
|
||||
def generate_test_programs_info(cls):
|
||||
"""Util to generate test programs info"""
|
||||
return {
|
||||
"relatedPrograms": [
|
||||
cls.generate_test_related_program() for _ in range(3)
|
||||
],
|
||||
"relatedPrograms": [cls.generate_test_related_program() for _ in range(3)],
|
||||
}
|
||||
|
||||
def test_related_program_serializer(self):
|
||||
@@ -697,17 +713,23 @@ class TestProgramsSerializer(TestCase):
|
||||
# When I serialize it
|
||||
output_data = RelatedProgramSerializer(input_data).data
|
||||
# Then the output should map with the input
|
||||
self.assertEqual(output_data, {
|
||||
'bannerUrl': input_data['banner_image']['small']['url'],
|
||||
'logoUrl': input_data['authoring_organizations'][0]['logo_image_url'],
|
||||
'numberOfCourses': len(input_data['courses']),
|
||||
'programType': input_data['type'],
|
||||
'programUrl': settings.LMS_ROOT_URL + reverse(
|
||||
'program_details_view', kwargs={'program_uuid': input_data['uuid']}
|
||||
),
|
||||
'provider': input_data['authoring_organizations'][0]['name'],
|
||||
'title': input_data['title'],
|
||||
})
|
||||
self.assertEqual(
|
||||
output_data,
|
||||
{
|
||||
"bannerImgSrc": input_data["banner_image"]["small"]["url"],
|
||||
"logoImgSrc": input_data["authoring_organizations"][0][
|
||||
"logo_image_url"
|
||||
],
|
||||
"numberOfCourses": len(input_data["courses"]),
|
||||
"programType": input_data["type"],
|
||||
"programUrl": settings.LMS_ROOT_URL
|
||||
+ reverse(
|
||||
"program_details_view", kwargs={"program_uuid": input_data["uuid"]}
|
||||
),
|
||||
"provider": input_data["authoring_organizations"][0]["name"],
|
||||
"title": input_data["title"],
|
||||
},
|
||||
)
|
||||
|
||||
def test_programs_serializer(self):
|
||||
"""Test the ProgramsSerializer"""
|
||||
@@ -718,11 +740,16 @@ class TestProgramsSerializer(TestCase):
|
||||
output_data = ProgramsSerializer(input_data).data
|
||||
|
||||
# Test the output
|
||||
assert output_data['relatedPrograms']
|
||||
assert len(output_data['relatedPrograms']) == len(input_data['relatedPrograms'])
|
||||
self.assertEqual(output_data, {
|
||||
"relatedPrograms": RelatedProgramSerializer(input_data["relatedPrograms"], many=True).data
|
||||
})
|
||||
assert output_data["relatedPrograms"]
|
||||
assert len(output_data["relatedPrograms"]) == len(input_data["relatedPrograms"])
|
||||
self.assertEqual(
|
||||
output_data,
|
||||
{
|
||||
"relatedPrograms": RelatedProgramSerializer(
|
||||
input_data["relatedPrograms"], many=True
|
||||
).data
|
||||
},
|
||||
)
|
||||
|
||||
def test_empty_sessions(self):
|
||||
input_data = {"relatedPrograms": []}
|
||||
@@ -876,42 +903,41 @@ class TestSuggestedCourseSerializer(TestCase):
|
||||
"""High-level tests for SuggestedCourseSerializer"""
|
||||
|
||||
@classmethod
|
||||
def generate_test_suggested_courses(cls):
|
||||
return {
|
||||
"bannerUrl": random_url(),
|
||||
"logoUrl": random_url(),
|
||||
"title": f"{uuid4()}",
|
||||
"courseUrl": random_url(),
|
||||
def mock_suggested_courses(cls, courses_count=5):
|
||||
"""
|
||||
Sample return data from general recommendations
|
||||
"""
|
||||
suggested_courses = {
|
||||
"courses": [],
|
||||
"is_personalized_recommendation": False,
|
||||
}
|
||||
|
||||
def test_structure(self):
|
||||
"""Test that nothing breaks and the output fields look correct"""
|
||||
input_data = self.generate_test_suggested_courses()
|
||||
for i in range(courses_count):
|
||||
suggested_courses["courses"].append(
|
||||
{
|
||||
"course_key": uuid4(),
|
||||
"logo_image_url": random_url(),
|
||||
"marketing_url": random_url(),
|
||||
"title": str(uuid4()),
|
||||
},
|
||||
)
|
||||
|
||||
output_data = SuggestedCourseSerializer(input_data).data
|
||||
|
||||
expected_keys = [
|
||||
"bannerUrl",
|
||||
"logoUrl",
|
||||
"title",
|
||||
"courseUrl",
|
||||
]
|
||||
assert output_data.keys() == set(expected_keys)
|
||||
return suggested_courses
|
||||
|
||||
def test_happy_path(self):
|
||||
"""Test that data serializes correctly"""
|
||||
|
||||
input_data = self.generate_test_suggested_courses()
|
||||
input_data = self.mock_suggested_courses(courses_count=1)["courses"][0]
|
||||
|
||||
output_data = SuggestedCourseSerializer(input_data).data
|
||||
|
||||
self.assertDictEqual(
|
||||
output_data,
|
||||
{
|
||||
"bannerUrl": input_data["bannerUrl"],
|
||||
"logoUrl": input_data["logoUrl"],
|
||||
"title": input_data["title"],
|
||||
"courseUrl": input_data["courseUrl"],
|
||||
"bannerImgSrc": input_data["logo_image_url"],
|
||||
"logoImgSrc": None,
|
||||
"courseName": input_data["title"],
|
||||
"courseUrl": input_data["marketing_url"],
|
||||
},
|
||||
)
|
||||
|
||||
@@ -1005,7 +1031,7 @@ class TestLearnerDashboardSerializer(LearnerDashboardBaseTest):
|
||||
enrollments=None,
|
||||
enrollments_with_entitlements=None,
|
||||
unfulfilled_entitlements=None,
|
||||
has_programs=False
|
||||
has_programs=False,
|
||||
):
|
||||
"""
|
||||
Given enrollments and entitlements, generate a matching serializer context
|
||||
@@ -1055,11 +1081,14 @@ class TestLearnerDashboardSerializer(LearnerDashboardBaseTest):
|
||||
course_overview = CourseOverviewFactory.create(id=course_key)
|
||||
|
||||
pseudo_session_course_overviews[course_key] = course_overview
|
||||
|
||||
programs = {
|
||||
str(enrollment.course.id): ProgramFactory.create_batch(3)
|
||||
for enrollment in enrollments
|
||||
} if has_programs else {}
|
||||
programs = (
|
||||
{
|
||||
str(enrollment.course.id): ProgramFactory.create_batch(3)
|
||||
for enrollment in enrollments
|
||||
}
|
||||
if has_programs
|
||||
else {}
|
||||
)
|
||||
|
||||
input_context = {
|
||||
"resume_course_urls": resume_course_urls,
|
||||
@@ -1149,17 +1178,37 @@ class TestLearnerDashboardSerializer(LearnerDashboardBaseTest):
|
||||
assert len(courses) == 3
|
||||
self._assert_all_keys_equal(courses)
|
||||
# Non-entitlement enrollment should have no entitlement info
|
||||
assert not courses[0]['entitlement']
|
||||
assert not courses[0]["entitlement"]
|
||||
# Fulfilled and Unfulfilled entitlement should have identical keys
|
||||
fulfilled_entitlement = courses[1]['entitlement']
|
||||
unfulfilled_entitlement = courses[2]['entitlement']
|
||||
fulfilled_entitlement = courses[1]["entitlement"]
|
||||
unfulfilled_entitlement = courses[2]["entitlement"]
|
||||
assert fulfilled_entitlement
|
||||
assert unfulfilled_entitlement
|
||||
assert fulfilled_entitlement.keys() == unfulfilled_entitlement.keys()
|
||||
|
||||
# test programs
|
||||
assert courses[0]['programs']
|
||||
assert len(courses[0]['programs']['relatedPrograms']) == 3
|
||||
assert courses[0]["programs"]
|
||||
assert len(courses[0]["programs"]["relatedPrograms"]) == 3
|
||||
|
||||
def test_suggested_courses(self):
|
||||
|
||||
suggested_courses = TestSuggestedCourseSerializer.mock_suggested_courses()[
|
||||
"courses"
|
||||
]
|
||||
|
||||
input_data = {
|
||||
"emailConfirmation": None,
|
||||
"enterpriseDashboard": None,
|
||||
"platformSettings": None,
|
||||
"enrollments": [],
|
||||
"unfulfilledEntitlements": [],
|
||||
"suggestedCourses": suggested_courses,
|
||||
}
|
||||
output_data = LearnerDashboardSerializer(input_data).data
|
||||
|
||||
output_suggested_courses = output_data.pop("suggestedCourses")
|
||||
|
||||
self.assertEqual(len(suggested_courses), len(output_suggested_courses))
|
||||
|
||||
@mock.patch(
|
||||
"lms.djangoapps.learner_home.serializers.SuggestedCourseSerializer.to_representation"
|
||||
|
||||
@@ -27,11 +27,15 @@ from lms.djangoapps.learner_home.views import (
|
||||
get_email_settings_info,
|
||||
get_enrollments,
|
||||
get_platform_settings,
|
||||
get_suggested_courses,
|
||||
get_user_account_confirmation_info,
|
||||
get_entitlements,
|
||||
)
|
||||
from lms.djangoapps.learner_home.test_serializers import random_url
|
||||
from openedx.core.djangoapps.catalog.tests.factories import CourseRunFactory as CatalogCourseRunFactory, ProgramFactory
|
||||
from openedx.core.djangoapps.catalog.tests.factories import (
|
||||
CourseRunFactory as CatalogCourseRunFactory,
|
||||
ProgramFactory,
|
||||
)
|
||||
from openedx.core.djangoapps.content.course_overviews.tests.factories import (
|
||||
CourseOverviewFactory,
|
||||
)
|
||||
@@ -41,7 +45,9 @@ from xmodule.modulestore.tests.django_utils import (
|
||||
SharedModuleStoreTestCase,
|
||||
)
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
from openedx.core.djangoapps.catalog.tests.factories import CourseFactory as CatalogCourseFactory
|
||||
from openedx.core.djangoapps.catalog.tests.factories import (
|
||||
CourseFactory as CatalogCourseFactory,
|
||||
)
|
||||
|
||||
|
||||
ENTERPRISE_ENABLED = "ENABLE_ENTERPRISE_INTEGRATION"
|
||||
@@ -344,6 +350,50 @@ class TestGetEmailSettingsInfo(SharedModuleStoreTestCase):
|
||||
)
|
||||
|
||||
|
||||
class TestGetSuggestedCourses(SharedModuleStoreTestCase):
|
||||
"""Tests for get_suggested_courses"""
|
||||
|
||||
MOCK_SUGGESTED_COURSES = {
|
||||
"courses": [
|
||||
{
|
||||
"course_key": "HogwartsX+6.00.1x",
|
||||
"logo_image_url": random_url(),
|
||||
"marketing_url": random_url(),
|
||||
"title": "Defense Against the Dark Arts",
|
||||
},
|
||||
{
|
||||
"course_key": "MonstersX+SC101EN",
|
||||
"logo_image_url": random_url(),
|
||||
"marketing_url": random_url(),
|
||||
"title": "Scaring 101",
|
||||
},
|
||||
],
|
||||
"is_personalized_recommendation": False,
|
||||
}
|
||||
|
||||
EMPTY_SUGGESTED_COURSES = {
|
||||
"courses": [],
|
||||
"is_personalized_recommendation": False,
|
||||
}
|
||||
|
||||
@patch("django.conf.settings.GENERAL_RECOMMENDATION", MOCK_SUGGESTED_COURSES)
|
||||
def test_suggested_courses(self):
|
||||
# Given suggested courses are configured
|
||||
# When I request suggested courses
|
||||
return_data = get_suggested_courses()
|
||||
|
||||
# Then I return them in the appropriate response
|
||||
self.assertDictEqual(return_data, self.MOCK_SUGGESTED_COURSES)
|
||||
|
||||
def test_no_suggested_courses(self):
|
||||
# Given suggested courses are not found/configured
|
||||
# When I request suggested courses
|
||||
return_data = get_suggested_courses()
|
||||
|
||||
# Then I return them in the appropriate response
|
||||
self.assertDictEqual(return_data, self.EMPTY_SUGGESTED_COURSES)
|
||||
|
||||
|
||||
class TestDashboardView(SharedModuleStoreTestCase, APITestCase):
|
||||
"""Tests for the dashboard view"""
|
||||
|
||||
@@ -383,23 +433,17 @@ class TestDashboardView(SharedModuleStoreTestCase, APITestCase):
|
||||
program = ProgramFactory(courses=[CatalogCourseFactory(uuid=str(course_uuid))])
|
||||
|
||||
enrollment = CourseEnrollmentFactory(
|
||||
user=self.user,
|
||||
mode=CourseMode.VERIFIED,
|
||||
is_active=False
|
||||
user=self.user, mode=CourseMode.VERIFIED, is_active=False
|
||||
)
|
||||
|
||||
entitlement = CourseEntitlementFactory.create(
|
||||
user=self.user,
|
||||
course_uuid=course_uuid,
|
||||
mode=CourseMode.VERIFIED,
|
||||
enrollment_course_run=enrollment
|
||||
enrollment_course_run=enrollment,
|
||||
)
|
||||
|
||||
return (
|
||||
program,
|
||||
enrollment,
|
||||
entitlement
|
||||
)
|
||||
return (program, enrollment, entitlement)
|
||||
|
||||
@patch.dict(settings.FEATURES, ENTERPRISE_ENABLED=False)
|
||||
def test_response_structure(self):
|
||||
@@ -531,7 +575,9 @@ class TestDashboardView(SharedModuleStoreTestCase, APITestCase):
|
||||
course_uuid = str(uuid4())
|
||||
course_uuid2 = str(uuid4())
|
||||
program, enrollment, _ = self._create_course_programs(course_uuid=course_uuid)
|
||||
program2, enrollment2, _ = self._create_course_programs(course_uuid=course_uuid2)
|
||||
program2, enrollment2, _ = self._create_course_programs(
|
||||
course_uuid=course_uuid2
|
||||
)
|
||||
|
||||
data = [
|
||||
program,
|
||||
|
||||
@@ -30,7 +30,9 @@ from lms.djangoapps.learner_home.serializers import LearnerDashboardSerializer
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
|
||||
from openedx.core.djangoapps.programs.utils import ProgramProgressMeter
|
||||
from openedx.features.enterprise_support.api import enterprise_customer_from_session_or_learner_data
|
||||
from openedx.features.enterprise_support.api import (
|
||||
enterprise_customer_from_session_or_learner_data,
|
||||
)
|
||||
|
||||
|
||||
def get_platform_settings():
|
||||
@@ -250,6 +252,19 @@ def get_course_programs(user, course_enrollments, site):
|
||||
return meter.invert_programs()
|
||||
|
||||
|
||||
def get_suggested_courses():
|
||||
"""
|
||||
Currently just returns general recommendations from settings
|
||||
"""
|
||||
empty_course_suggestions = {"courses": [], "is_personalized_recommendation": False}
|
||||
return (
|
||||
configuration_helpers.get_value(
|
||||
"GENERAL_RECOMMENDATION", settings.GENERAL_RECOMMENDATION
|
||||
)
|
||||
or empty_course_suggestions
|
||||
)
|
||||
|
||||
|
||||
class InitializeView(RetrieveAPIView): # pylint: disable=unused-argument
|
||||
"""List of courses a user is enrolled in or entitled to"""
|
||||
|
||||
@@ -301,13 +316,16 @@ class InitializeView(RetrieveAPIView): # pylint: disable=unused-argument
|
||||
# Gather urls for course card resume buttons.
|
||||
resume_button_urls = get_resume_urls_for_enrollments(user, course_enrollments)
|
||||
|
||||
# Get suggested courses
|
||||
suggested_courses = get_suggested_courses().get("courses", [])
|
||||
|
||||
learner_dash_data = {
|
||||
"emailConfirmation": email_confirmation,
|
||||
"enterpriseDashboard": enterprise_customer,
|
||||
"platformSettings": get_platform_settings(),
|
||||
"enrollments": course_enrollments,
|
||||
"unfulfilledEntitlements": unfulfilled_entitlements,
|
||||
"suggestedCourses": [],
|
||||
"suggestedCourses": suggested_courses,
|
||||
}
|
||||
|
||||
context = {
|
||||
|
||||
Reference in New Issue
Block a user