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

Method loadData

app/views/admin/AnalyticsView.js:60–272  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

58 }
59
60 loadData () {
61 this.supermodel.addRequestResource({
62 url: '/db/analytics_perday/-/active_classes',
63 method: 'POST',
64 success: data => {
65 // Organize data by day, then group
66 let day, group
67 const groupMap = {}
68 const dayGroupMap = {}
69 for (const activeClass of Array.from(data)) {
70 if (dayGroupMap[activeClass.day] == null) { dayGroupMap[activeClass.day] = {} }
71 dayGroupMap[activeClass.day].Total = 0
72 for (group in activeClass.classes) {
73 const val = activeClass.classes[group]
74 groupMap[group] = true
75 dayGroupMap[activeClass.day][group] = val
76 dayGroupMap[activeClass.day].Total += val
77 }
78 }
79 this.activeClassGroups = Object.keys(groupMap)
80 this.activeClassGroups.push('Total')
81 // Build list of active classes, where each entry is a day of individual group values
82 this.activeClasses = []
83 for (day in dayGroupMap) {
84 const dashedDay = `${day.substring(0, 4)}-${day.substring(4, 6)}-${day.substring(6, 8)}`
85 data = { day: dashedDay, groups: [] }
86 for (group of Array.from(this.activeClassGroups)) {
87 data.groups.push(dayGroupMap[day][group] != null ? dayGroupMap[day][group] : 0)
88 }
89 this.activeClasses.push(data)
90 }
91 this.activeClasses.sort((a, b) => b.day.localeCompare(a.day))
92
93 this.updateAllKPIChartData()
94 this.updateActiveClassesChartData()
95 return (typeof this.render === 'function' ? this.render() : undefined)
96 }
97 }, 0).load()
98
99 this.supermodel.addRequestResource({
100 url: '/db/analytics_perday/-/active_users',
101 method: 'POST',
102 success: data => {
103 let day
104 this.activeUsers = data.map(function (a) {
105 a.day = `${a.day.substring(0, 4)}-${a.day.substring(4, 6)}-${a.day.substring(6, 8)}`
106 return a
107 })
108
109 // Add campaign/classroom DAU 30-day averages and daily totals
110 const campaignDauTotals = []
111 const classroomDauTotals = []
112 const eventMap = {}
113 for (const entry of Array.from(this.activeUsers)) {
114 ({
115 day
116 } = entry)
117 let campaignDauTotal = 0

Callers 1

initializeMethod · 0.95

Calls 9

updateAllKPIChartDataMethod · 0.95
handlePaymentsMethod · 0.95
objectIdToDateMethod · 0.80
loadMethod · 0.45
renderMethod · 0.45

Tested by

no test coverage detected