MCPcopy Create free account
hub / github.com/codecombat/codecombat / courseWorldMap

Function courseWorldMap

app/core/urls.js:46–97  ·  view source on GitHub ↗
(param)

Source from the content-addressed store, hash-verified

44 },
45
46 courseWorldMap (param) {
47 const courseId =
48 param.courseId || param.course?.id || param.course?._id || param.course
49 const courseInstanceId =
50 param.courseInstanceId ||
51 param.courseInstance?.id ||
52 param.courseInstance?._id ||
53 param.courseInstance
54 const campaignId =
55 param.campaignId ||
56 param.course?.attributes?.campaignID ||
57 param.course?.campaignID
58 const classroomId = param.classroom?.id || param.classroomId
59 const { campaignPage } = param
60 const { codeLanguage } = param
61 if (!campaignId) {
62 console.error('courseWorldMap: campaign id is not defined', param)
63 return ''
64 }
65 if (courseId === utils.courseIDs.HACKSTACK) {
66 return `/ai/course-instance/${courseInstanceId}`
67 } else if (utils.HACKSTACK_COURSE_IDS.includes(courseId)) {
68 if (courseInstanceId) return `/ai/play/${campaignId}/?course-instance=${courseInstanceId}`
69 else return '/ai/play'
70 }
71 const courseCampaignSlug = utils.courseCampaignSlugs[courseId]
72 let url = `/play/${encodeURIComponent(courseCampaignSlug || campaignId)}`
73 const queryParams = {}
74 if (courseId) {
75 queryParams.course = encodeURIComponent(courseId)
76 }
77 if (courseInstanceId) {
78 queryParams['course-instance'] = encodeURIComponent(courseInstanceId)
79 }
80 if (campaignPage) {
81 queryParams['campaign-page'] = encodeURIComponent(campaignPage)
82 }
83 if (codeLanguage) {
84 queryParams.codeLanguage = encodeURIComponent(codeLanguage)
85 }
86 if (classroomId) {
87 queryParams['classroom-id'] = encodeURIComponent(classroomId)
88 }
89 const queryString = $.param(queryParams)
90 if (queryString) {
91 url += `?${queryString}`
92 }
93 if (utils.showOzaria()) {
94 url = url.replace(/^\/play/, '/play/ozaria')
95 }
96 return url
97 },
98
99 courseProjectGallery ({ courseInstance }) {
100 return `/students/project-gallery/${courseInstance.id}`

Callers

nothing calls this directly

Calls 1

errorMethod · 0.45

Tested by

no test coverage detected