@iblai/iblai-api 4.45.1-core → 4.46.0-core
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +75 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +75 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +75 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/models/ContentDetailsContentInfo.d.ts +24 -0
- package/dist/types/models/ContentDetailsLearner.d.ts +49 -0
- package/dist/types/models/ContentDetailsPagination.d.ts +25 -0
- package/dist/types/models/ContentDetailsResponse.d.ts +13 -0
- package/dist/types/models/ContentDetailsSummary.d.ts +18 -0
- package/dist/types/models/ContentDetailsTimeSeries.d.ts +15 -0
- package/dist/types/models/ContentDetailsTimeSeriesPoint.d.ts +17 -0
- package/dist/types/services/AiAnalyticsService.d.ts +45 -0
- package/dist/types/services/AnalyticsService.d.ts +45 -0
- package/package.json +1 -1
- package/sdk_schema.yml +326 -1
- package/src/core/OpenAPI.ts +1 -1
- package/src/index.ts +7 -0
- package/src/models/ContentDetailsContentInfo.ts +29 -0
- package/src/models/ContentDetailsLearner.ts +54 -0
- package/src/models/ContentDetailsPagination.ts +30 -0
- package/src/models/ContentDetailsResponse.ts +18 -0
- package/src/models/ContentDetailsSummary.ts +23 -0
- package/src/models/ContentDetailsTimeSeries.ts +20 -0
- package/src/models/ContentDetailsTimeSeriesPoint.ts +22 -0
- package/src/services/AiAnalyticsService.ts +75 -0
- package/src/services/AnalyticsService.ts +75 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializer for pagination information in content details response.
|
|
3
|
+
*/
|
|
4
|
+
export type ContentDetailsPagination = {
|
|
5
|
+
/**
|
|
6
|
+
* Total learner records
|
|
7
|
+
*/
|
|
8
|
+
count: number;
|
|
9
|
+
/**
|
|
10
|
+
* Relative URL for the next page
|
|
11
|
+
*/
|
|
12
|
+
next?: string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Relative URL for the previous page
|
|
15
|
+
*/
|
|
16
|
+
previous?: string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Current page number
|
|
19
|
+
*/
|
|
20
|
+
current_page: number;
|
|
21
|
+
/**
|
|
22
|
+
* Total number of pages
|
|
23
|
+
*/
|
|
24
|
+
total_pages: number;
|
|
25
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ContentDetailsContentInfo } from './ContentDetailsContentInfo';
|
|
2
|
+
import type { ContentDetailsLearner } from './ContentDetailsLearner';
|
|
3
|
+
import type { ContentDetailsPagination } from './ContentDetailsPagination';
|
|
4
|
+
import type { ContentDetailsSummary } from './ContentDetailsSummary';
|
|
5
|
+
/**
|
|
6
|
+
* Serializer for the content details API response.
|
|
7
|
+
*/
|
|
8
|
+
export type ContentDetailsResponse = {
|
|
9
|
+
content_info: ContentDetailsContentInfo;
|
|
10
|
+
summary: ContentDetailsSummary;
|
|
11
|
+
pagination: ContentDetailsPagination;
|
|
12
|
+
learners: Array<ContentDetailsLearner>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ContentDetailsTimeSeries } from './ContentDetailsTimeSeries';
|
|
2
|
+
/**
|
|
3
|
+
* Serializer for summary data in the content details endpoint.
|
|
4
|
+
*/
|
|
5
|
+
export type ContentDetailsSummary = {
|
|
6
|
+
/**
|
|
7
|
+
* Total counts related to the content item
|
|
8
|
+
*/
|
|
9
|
+
totals: Record<string, number>;
|
|
10
|
+
/**
|
|
11
|
+
* Average values related to the content item
|
|
12
|
+
*/
|
|
13
|
+
averages: Record<string, number | null>;
|
|
14
|
+
/**
|
|
15
|
+
* Optional time series data for the requested metric
|
|
16
|
+
*/
|
|
17
|
+
time_series?: ContentDetailsTimeSeries;
|
|
18
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ContentDetailsTimeSeriesPoint } from './ContentDetailsTimeSeriesPoint';
|
|
2
|
+
/**
|
|
3
|
+
* Serializer describing the time series block.
|
|
4
|
+
*/
|
|
5
|
+
export type ContentDetailsTimeSeries = {
|
|
6
|
+
/**
|
|
7
|
+
* Metric represented in the time series
|
|
8
|
+
*/
|
|
9
|
+
metric: string;
|
|
10
|
+
/**
|
|
11
|
+
* Aggregation interval (e.g., month)
|
|
12
|
+
*/
|
|
13
|
+
interval: string;
|
|
14
|
+
data: Array<ContentDetailsTimeSeriesPoint>;
|
|
15
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializer for individual time series points in content details response.
|
|
3
|
+
*/
|
|
4
|
+
export type ContentDetailsTimeSeriesPoint = {
|
|
5
|
+
/**
|
|
6
|
+
* ISO8601 timestamp representing the aggregated period
|
|
7
|
+
*/
|
|
8
|
+
period: string;
|
|
9
|
+
/**
|
|
10
|
+
* Value for the requested metric during the period
|
|
11
|
+
*/
|
|
12
|
+
value: number;
|
|
13
|
+
/**
|
|
14
|
+
* Average value for the period (used for ratings)
|
|
15
|
+
*/
|
|
16
|
+
average?: number | null;
|
|
17
|
+
};
|
|
@@ -4,6 +4,7 @@ import type { ActivityAPI } from '../models/ActivityAPI';
|
|
|
4
4
|
import type { Average } from '../models/Average';
|
|
5
5
|
import type { AverageOvertime } from '../models/AverageOvertime';
|
|
6
6
|
import type { AvgCourseGradeWithCutoff } from '../models/AvgCourseGradeWithCutoff';
|
|
7
|
+
import type { ContentDetailsResponse } from '../models/ContentDetailsResponse';
|
|
7
8
|
import type { ContentResponse } from '../models/ContentResponse';
|
|
8
9
|
import type { Count } from '../models/Count';
|
|
9
10
|
import type { CourseCompletionPerCourse } from '../models/CourseCompletionPerCourse';
|
|
@@ -99,6 +100,50 @@ export declare class AiAnalyticsService {
|
|
|
99
100
|
*/
|
|
100
101
|
platformKey?: string | null;
|
|
101
102
|
}): CancelablePromise<ContentResponse>;
|
|
103
|
+
/**
|
|
104
|
+
* Get Content Details
|
|
105
|
+
* Retrieve detailed analytics for a specific content item including summary statistics, learner-level data, and optional time series information.
|
|
106
|
+
* @returns ContentDetailsResponse
|
|
107
|
+
* @throws ApiError
|
|
108
|
+
*/
|
|
109
|
+
static getContentDetails({ contentId, metric, dateFilter, endDate, limit, page, platformKey, search, startDate, timeMetric, }: {
|
|
110
|
+
contentId: string;
|
|
111
|
+
/**
|
|
112
|
+
* Content type to fetch (course, program, pathway, skill)
|
|
113
|
+
*
|
|
114
|
+
* * `course` - course
|
|
115
|
+
* * `courses` - courses
|
|
116
|
+
* * `program` - program
|
|
117
|
+
* * `programs` - programs
|
|
118
|
+
* * `pathway` - pathway
|
|
119
|
+
* * `pathways` - pathways
|
|
120
|
+
* * `skill` - skill
|
|
121
|
+
* * `skills` - skills
|
|
122
|
+
*/
|
|
123
|
+
metric: 'course' | 'courses' | 'program' | 'programs' | 'pathway' | 'pathways' | 'skill' | 'skills';
|
|
124
|
+
/**
|
|
125
|
+
* * `today` - Today only
|
|
126
|
+
* * `7d` - Last 7 days
|
|
127
|
+
* * `30d` - Last 30 days
|
|
128
|
+
* * `90d` - Last 90 days
|
|
129
|
+
* * `all_time` - All time
|
|
130
|
+
* * `custom` - Custom date range
|
|
131
|
+
*/
|
|
132
|
+
dateFilter?: 'today' | '7d' | '30d' | '90d' | 'all_time' | 'custom';
|
|
133
|
+
endDate?: string;
|
|
134
|
+
/**
|
|
135
|
+
* Number of learner records per page
|
|
136
|
+
*/
|
|
137
|
+
limit?: number;
|
|
138
|
+
page?: number;
|
|
139
|
+
platformKey?: string;
|
|
140
|
+
search?: string;
|
|
141
|
+
startDate?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Optional time series metric (enrollments, completions, ratings)
|
|
144
|
+
*/
|
|
145
|
+
timeMetric?: string | null;
|
|
146
|
+
}): CancelablePromise<ContentDetailsResponse>;
|
|
102
147
|
/**
|
|
103
148
|
*
|
|
104
149
|
* Retrieve a holistic snapshot of a learner across catalog enrollments, mentor
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ContentDetailsResponse } from '../models/ContentDetailsResponse';
|
|
1
2
|
import type { ContentResponse } from '../models/ContentResponse';
|
|
2
3
|
import type { LearnerAnalyticsResponse } from '../models/LearnerAnalyticsResponse';
|
|
3
4
|
import type { CancelablePromise } from '../core/CancelablePromise';
|
|
@@ -55,6 +56,50 @@ export declare class AnalyticsService {
|
|
|
55
56
|
*/
|
|
56
57
|
platformKey?: string | null;
|
|
57
58
|
}): CancelablePromise<ContentResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* Get Content Details
|
|
61
|
+
* Retrieve detailed analytics for a specific content item including summary statistics, learner-level data, and optional time series information.
|
|
62
|
+
* @returns ContentDetailsResponse
|
|
63
|
+
* @throws ApiError
|
|
64
|
+
*/
|
|
65
|
+
static getContentDetails({ contentId, metric, dateFilter, endDate, limit, page, platformKey, search, startDate, timeMetric, }: {
|
|
66
|
+
contentId: string;
|
|
67
|
+
/**
|
|
68
|
+
* Content type to fetch (course, program, pathway, skill)
|
|
69
|
+
*
|
|
70
|
+
* * `course` - course
|
|
71
|
+
* * `courses` - courses
|
|
72
|
+
* * `program` - program
|
|
73
|
+
* * `programs` - programs
|
|
74
|
+
* * `pathway` - pathway
|
|
75
|
+
* * `pathways` - pathways
|
|
76
|
+
* * `skill` - skill
|
|
77
|
+
* * `skills` - skills
|
|
78
|
+
*/
|
|
79
|
+
metric: 'course' | 'courses' | 'program' | 'programs' | 'pathway' | 'pathways' | 'skill' | 'skills';
|
|
80
|
+
/**
|
|
81
|
+
* * `today` - Today only
|
|
82
|
+
* * `7d` - Last 7 days
|
|
83
|
+
* * `30d` - Last 30 days
|
|
84
|
+
* * `90d` - Last 90 days
|
|
85
|
+
* * `all_time` - All time
|
|
86
|
+
* * `custom` - Custom date range
|
|
87
|
+
*/
|
|
88
|
+
dateFilter?: 'today' | '7d' | '30d' | '90d' | 'all_time' | 'custom';
|
|
89
|
+
endDate?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Number of learner records per page
|
|
92
|
+
*/
|
|
93
|
+
limit?: number;
|
|
94
|
+
page?: number;
|
|
95
|
+
platformKey?: string;
|
|
96
|
+
search?: string;
|
|
97
|
+
startDate?: string;
|
|
98
|
+
/**
|
|
99
|
+
* Optional time series metric (enrollments, completions, ratings)
|
|
100
|
+
*/
|
|
101
|
+
timeMetric?: string | null;
|
|
102
|
+
}): CancelablePromise<ContentDetailsResponse>;
|
|
58
103
|
/**
|
|
59
104
|
* Unified API endpoint for learner analytics.
|
|
60
105
|
*
|
package/package.json
CHANGED
package/sdk_schema.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: ibl-data-manager
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.46.0-core
|
|
5
5
|
description: API for iblai
|
|
6
6
|
paths:
|
|
7
7
|
/api/analytics/content/:
|
|
@@ -100,6 +100,133 @@ paths:
|
|
|
100
100
|
schema:
|
|
101
101
|
description: Internal server error
|
|
102
102
|
description: ''
|
|
103
|
+
/api/analytics/content/details/{content_id}/:
|
|
104
|
+
get:
|
|
105
|
+
operationId: get_content_details
|
|
106
|
+
description: Retrieve detailed analytics for a specific content item including
|
|
107
|
+
summary statistics, learner-level data, and optional time series information.
|
|
108
|
+
summary: Get Content Details
|
|
109
|
+
parameters:
|
|
110
|
+
- in: path
|
|
111
|
+
name: content_id
|
|
112
|
+
schema:
|
|
113
|
+
type: string
|
|
114
|
+
required: true
|
|
115
|
+
- in: query
|
|
116
|
+
name: date_filter
|
|
117
|
+
schema:
|
|
118
|
+
enum:
|
|
119
|
+
- today
|
|
120
|
+
- 7d
|
|
121
|
+
- 30d
|
|
122
|
+
- 90d
|
|
123
|
+
- all_time
|
|
124
|
+
- custom
|
|
125
|
+
type: string
|
|
126
|
+
default: today
|
|
127
|
+
minLength: 1
|
|
128
|
+
description: |-
|
|
129
|
+
* `today` - Today only
|
|
130
|
+
* `7d` - Last 7 days
|
|
131
|
+
* `30d` - Last 30 days
|
|
132
|
+
* `90d` - Last 90 days
|
|
133
|
+
* `all_time` - All time
|
|
134
|
+
* `custom` - Custom date range
|
|
135
|
+
- in: query
|
|
136
|
+
name: end_date
|
|
137
|
+
schema:
|
|
138
|
+
type: string
|
|
139
|
+
format: date
|
|
140
|
+
- in: query
|
|
141
|
+
name: limit
|
|
142
|
+
schema:
|
|
143
|
+
type: integer
|
|
144
|
+
maximum: 30
|
|
145
|
+
minimum: 1
|
|
146
|
+
default: 10
|
|
147
|
+
description: Number of learner records per page
|
|
148
|
+
- in: query
|
|
149
|
+
name: metric
|
|
150
|
+
schema:
|
|
151
|
+
enum:
|
|
152
|
+
- course
|
|
153
|
+
- courses
|
|
154
|
+
- program
|
|
155
|
+
- programs
|
|
156
|
+
- pathway
|
|
157
|
+
- pathways
|
|
158
|
+
- skill
|
|
159
|
+
- skills
|
|
160
|
+
type: string
|
|
161
|
+
minLength: 1
|
|
162
|
+
description: |-
|
|
163
|
+
Content type to fetch (course, program, pathway, skill)
|
|
164
|
+
|
|
165
|
+
* `course` - course
|
|
166
|
+
* `courses` - courses
|
|
167
|
+
* `program` - program
|
|
168
|
+
* `programs` - programs
|
|
169
|
+
* `pathway` - pathway
|
|
170
|
+
* `pathways` - pathways
|
|
171
|
+
* `skill` - skill
|
|
172
|
+
* `skills` - skills
|
|
173
|
+
required: true
|
|
174
|
+
- in: query
|
|
175
|
+
name: page
|
|
176
|
+
schema:
|
|
177
|
+
type: integer
|
|
178
|
+
minimum: 1
|
|
179
|
+
default: 1
|
|
180
|
+
- in: query
|
|
181
|
+
name: platform_key
|
|
182
|
+
schema:
|
|
183
|
+
type: string
|
|
184
|
+
minLength: 1
|
|
185
|
+
- in: query
|
|
186
|
+
name: search
|
|
187
|
+
schema:
|
|
188
|
+
type: string
|
|
189
|
+
- in: query
|
|
190
|
+
name: start_date
|
|
191
|
+
schema:
|
|
192
|
+
type: string
|
|
193
|
+
format: date
|
|
194
|
+
- in: query
|
|
195
|
+
name: time_metric
|
|
196
|
+
schema:
|
|
197
|
+
type: string
|
|
198
|
+
nullable: true
|
|
199
|
+
description: Optional time series metric (enrollments, completions, ratings)
|
|
200
|
+
tags:
|
|
201
|
+
- ai-analytics
|
|
202
|
+
- analytics
|
|
203
|
+
security:
|
|
204
|
+
- PlatformApiKeyAuthentication: []
|
|
205
|
+
responses:
|
|
206
|
+
'200':
|
|
207
|
+
content:
|
|
208
|
+
application/json:
|
|
209
|
+
schema:
|
|
210
|
+
$ref: '#/components/schemas/ContentDetailsResponse'
|
|
211
|
+
description: ''
|
|
212
|
+
'400':
|
|
213
|
+
content:
|
|
214
|
+
application/json:
|
|
215
|
+
schema:
|
|
216
|
+
description: Invalid request parameters
|
|
217
|
+
description: ''
|
|
218
|
+
'404':
|
|
219
|
+
content:
|
|
220
|
+
application/json:
|
|
221
|
+
schema:
|
|
222
|
+
description: Content not found or page out of range
|
|
223
|
+
description: ''
|
|
224
|
+
'500':
|
|
225
|
+
content:
|
|
226
|
+
application/json:
|
|
227
|
+
schema:
|
|
228
|
+
description: Internal server error
|
|
229
|
+
description: ''
|
|
103
230
|
/api/analytics/learner/details:
|
|
104
231
|
get:
|
|
105
232
|
operationId: analytics_learner_details_retrieve
|
|
@@ -30966,6 +31093,204 @@ components:
|
|
|
30966
31093
|
type: number
|
|
30967
31094
|
format: double
|
|
30968
31095
|
description: Average courses per skill
|
|
31096
|
+
ContentDetailsContentInfo:
|
|
31097
|
+
type: object
|
|
31098
|
+
description: Serializer for the content information block.
|
|
31099
|
+
properties:
|
|
31100
|
+
id:
|
|
31101
|
+
type: string
|
|
31102
|
+
description: Identifier for the content item
|
|
31103
|
+
name:
|
|
31104
|
+
type: string
|
|
31105
|
+
nullable: true
|
|
31106
|
+
type:
|
|
31107
|
+
type: string
|
|
31108
|
+
description: Content type (course, program, pathway, skill)
|
|
31109
|
+
slug:
|
|
31110
|
+
type: string
|
|
31111
|
+
nullable: true
|
|
31112
|
+
platform:
|
|
31113
|
+
type: string
|
|
31114
|
+
nullable: true
|
|
31115
|
+
external:
|
|
31116
|
+
type: boolean
|
|
31117
|
+
description: Whether the content is external to the platform
|
|
31118
|
+
metadata:
|
|
31119
|
+
type: object
|
|
31120
|
+
additionalProperties: {}
|
|
31121
|
+
description: Metadata associated with the content item
|
|
31122
|
+
required:
|
|
31123
|
+
- external
|
|
31124
|
+
- id
|
|
31125
|
+
- type
|
|
31126
|
+
ContentDetailsLearner:
|
|
31127
|
+
type: object
|
|
31128
|
+
description: Serializer for individual learner entries in content details.
|
|
31129
|
+
properties:
|
|
31130
|
+
user_id:
|
|
31131
|
+
type: integer
|
|
31132
|
+
description: Learner identifier
|
|
31133
|
+
username:
|
|
31134
|
+
type: string
|
|
31135
|
+
nullable: true
|
|
31136
|
+
description: Learner username
|
|
31137
|
+
email:
|
|
31138
|
+
type: string
|
|
31139
|
+
format: email
|
|
31140
|
+
nullable: true
|
|
31141
|
+
description: Learner email
|
|
31142
|
+
name:
|
|
31143
|
+
type: string
|
|
31144
|
+
nullable: true
|
|
31145
|
+
description: Learner display name
|
|
31146
|
+
enrollment_date:
|
|
31147
|
+
type: string
|
|
31148
|
+
format: date-time
|
|
31149
|
+
nullable: true
|
|
31150
|
+
description: Date the learner enrolled in the content
|
|
31151
|
+
completion_status:
|
|
31152
|
+
type: string
|
|
31153
|
+
description: Completion status for the learner
|
|
31154
|
+
completion_percentage:
|
|
31155
|
+
type: number
|
|
31156
|
+
format: double
|
|
31157
|
+
nullable: true
|
|
31158
|
+
description: Learner completion percentage
|
|
31159
|
+
last_activity:
|
|
31160
|
+
type: string
|
|
31161
|
+
format: date-time
|
|
31162
|
+
nullable: true
|
|
31163
|
+
description: Last activity timestamp for the learner
|
|
31164
|
+
rating:
|
|
31165
|
+
type: number
|
|
31166
|
+
format: double
|
|
31167
|
+
nullable: true
|
|
31168
|
+
description: Learner rating for the content, if available
|
|
31169
|
+
review:
|
|
31170
|
+
type: string
|
|
31171
|
+
nullable: true
|
|
31172
|
+
description: Learner review content, if available
|
|
31173
|
+
details:
|
|
31174
|
+
type: object
|
|
31175
|
+
additionalProperties: {}
|
|
31176
|
+
description: Additional learner-specific metadata
|
|
31177
|
+
required:
|
|
31178
|
+
- completion_percentage
|
|
31179
|
+
- completion_status
|
|
31180
|
+
- email
|
|
31181
|
+
- enrollment_date
|
|
31182
|
+
- last_activity
|
|
31183
|
+
- name
|
|
31184
|
+
- rating
|
|
31185
|
+
- review
|
|
31186
|
+
- user_id
|
|
31187
|
+
- username
|
|
31188
|
+
ContentDetailsPagination:
|
|
31189
|
+
type: object
|
|
31190
|
+
description: Serializer for pagination information in content details response.
|
|
31191
|
+
properties:
|
|
31192
|
+
count:
|
|
31193
|
+
type: integer
|
|
31194
|
+
description: Total learner records
|
|
31195
|
+
next:
|
|
31196
|
+
type: string
|
|
31197
|
+
nullable: true
|
|
31198
|
+
description: Relative URL for the next page
|
|
31199
|
+
previous:
|
|
31200
|
+
type: string
|
|
31201
|
+
nullable: true
|
|
31202
|
+
description: Relative URL for the previous page
|
|
31203
|
+
current_page:
|
|
31204
|
+
type: integer
|
|
31205
|
+
description: Current page number
|
|
31206
|
+
total_pages:
|
|
31207
|
+
type: integer
|
|
31208
|
+
description: Total number of pages
|
|
31209
|
+
required:
|
|
31210
|
+
- count
|
|
31211
|
+
- current_page
|
|
31212
|
+
- total_pages
|
|
31213
|
+
ContentDetailsResponse:
|
|
31214
|
+
type: object
|
|
31215
|
+
description: Serializer for the content details API response.
|
|
31216
|
+
properties:
|
|
31217
|
+
content_info:
|
|
31218
|
+
$ref: '#/components/schemas/ContentDetailsContentInfo'
|
|
31219
|
+
summary:
|
|
31220
|
+
$ref: '#/components/schemas/ContentDetailsSummary'
|
|
31221
|
+
pagination:
|
|
31222
|
+
$ref: '#/components/schemas/ContentDetailsPagination'
|
|
31223
|
+
learners:
|
|
31224
|
+
type: array
|
|
31225
|
+
items:
|
|
31226
|
+
$ref: '#/components/schemas/ContentDetailsLearner'
|
|
31227
|
+
required:
|
|
31228
|
+
- content_info
|
|
31229
|
+
- learners
|
|
31230
|
+
- pagination
|
|
31231
|
+
- summary
|
|
31232
|
+
ContentDetailsSummary:
|
|
31233
|
+
type: object
|
|
31234
|
+
description: Serializer for summary data in the content details endpoint.
|
|
31235
|
+
properties:
|
|
31236
|
+
totals:
|
|
31237
|
+
type: object
|
|
31238
|
+
additionalProperties:
|
|
31239
|
+
type: number
|
|
31240
|
+
format: double
|
|
31241
|
+
description: Total counts related to the content item
|
|
31242
|
+
averages:
|
|
31243
|
+
type: object
|
|
31244
|
+
additionalProperties:
|
|
31245
|
+
type: number
|
|
31246
|
+
format: double
|
|
31247
|
+
nullable: true
|
|
31248
|
+
description: Average values related to the content item
|
|
31249
|
+
time_series:
|
|
31250
|
+
allOf:
|
|
31251
|
+
- $ref: '#/components/schemas/ContentDetailsTimeSeries'
|
|
31252
|
+
description: Optional time series data for the requested metric
|
|
31253
|
+
required:
|
|
31254
|
+
- averages
|
|
31255
|
+
- totals
|
|
31256
|
+
ContentDetailsTimeSeries:
|
|
31257
|
+
type: object
|
|
31258
|
+
description: Serializer describing the time series block.
|
|
31259
|
+
properties:
|
|
31260
|
+
metric:
|
|
31261
|
+
type: string
|
|
31262
|
+
description: Metric represented in the time series
|
|
31263
|
+
interval:
|
|
31264
|
+
type: string
|
|
31265
|
+
description: Aggregation interval (e.g., month)
|
|
31266
|
+
data:
|
|
31267
|
+
type: array
|
|
31268
|
+
items:
|
|
31269
|
+
$ref: '#/components/schemas/ContentDetailsTimeSeriesPoint'
|
|
31270
|
+
required:
|
|
31271
|
+
- data
|
|
31272
|
+
- interval
|
|
31273
|
+
- metric
|
|
31274
|
+
ContentDetailsTimeSeriesPoint:
|
|
31275
|
+
type: object
|
|
31276
|
+
description: Serializer for individual time series points in content details
|
|
31277
|
+
response.
|
|
31278
|
+
properties:
|
|
31279
|
+
period:
|
|
31280
|
+
type: string
|
|
31281
|
+
description: ISO8601 timestamp representing the aggregated period
|
|
31282
|
+
value:
|
|
31283
|
+
type: number
|
|
31284
|
+
format: double
|
|
31285
|
+
description: Value for the requested metric during the period
|
|
31286
|
+
average:
|
|
31287
|
+
type: number
|
|
31288
|
+
format: double
|
|
31289
|
+
nullable: true
|
|
31290
|
+
description: Average value for the period (used for ratings)
|
|
31291
|
+
required:
|
|
31292
|
+
- period
|
|
31293
|
+
- value
|
|
30969
31294
|
ContentItem:
|
|
30970
31295
|
type: object
|
|
30971
31296
|
description: Serializer for individual content items.
|
package/src/core/OpenAPI.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -57,6 +57,13 @@ export type { Company } from './models/Company';
|
|
|
57
57
|
export type { ConfigurationItem } from './models/ConfigurationItem';
|
|
58
58
|
export type { ContentAnalytics } from './models/ContentAnalytics';
|
|
59
59
|
export type { ContentAverages } from './models/ContentAverages';
|
|
60
|
+
export type { ContentDetailsContentInfo } from './models/ContentDetailsContentInfo';
|
|
61
|
+
export type { ContentDetailsLearner } from './models/ContentDetailsLearner';
|
|
62
|
+
export type { ContentDetailsPagination } from './models/ContentDetailsPagination';
|
|
63
|
+
export type { ContentDetailsResponse } from './models/ContentDetailsResponse';
|
|
64
|
+
export type { ContentDetailsSummary } from './models/ContentDetailsSummary';
|
|
65
|
+
export type { ContentDetailsTimeSeries } from './models/ContentDetailsTimeSeries';
|
|
66
|
+
export type { ContentDetailsTimeSeriesPoint } from './models/ContentDetailsTimeSeriesPoint';
|
|
60
67
|
export type { ContentItem } from './models/ContentItem';
|
|
61
68
|
export type { ContentPagination } from './models/ContentPagination';
|
|
62
69
|
export type { ContentResponse } from './models/ContentResponse';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* generated using openapi-typescript-codegen -- do not edit */
|
|
2
|
+
/* istanbul ignore file */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
/**
|
|
6
|
+
* Serializer for the content information block.
|
|
7
|
+
*/
|
|
8
|
+
export type ContentDetailsContentInfo = {
|
|
9
|
+
/**
|
|
10
|
+
* Identifier for the content item
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
name?: string | null;
|
|
14
|
+
/**
|
|
15
|
+
* Content type (course, program, pathway, skill)
|
|
16
|
+
*/
|
|
17
|
+
type: string;
|
|
18
|
+
slug?: string | null;
|
|
19
|
+
platform?: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the content is external to the platform
|
|
22
|
+
*/
|
|
23
|
+
external: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Metadata associated with the content item
|
|
26
|
+
*/
|
|
27
|
+
metadata?: Record<string, any>;
|
|
28
|
+
};
|
|
29
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* generated using openapi-typescript-codegen -- do not edit */
|
|
2
|
+
/* istanbul ignore file */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
/* eslint-disable */
|
|
5
|
+
/**
|
|
6
|
+
* Serializer for individual learner entries in content details.
|
|
7
|
+
*/
|
|
8
|
+
export type ContentDetailsLearner = {
|
|
9
|
+
/**
|
|
10
|
+
* Learner identifier
|
|
11
|
+
*/
|
|
12
|
+
user_id: number;
|
|
13
|
+
/**
|
|
14
|
+
* Learner username
|
|
15
|
+
*/
|
|
16
|
+
username: string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Learner email
|
|
19
|
+
*/
|
|
20
|
+
email: string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Learner display name
|
|
23
|
+
*/
|
|
24
|
+
name: string | null;
|
|
25
|
+
/**
|
|
26
|
+
* Date the learner enrolled in the content
|
|
27
|
+
*/
|
|
28
|
+
enrollment_date: string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Completion status for the learner
|
|
31
|
+
*/
|
|
32
|
+
completion_status: string;
|
|
33
|
+
/**
|
|
34
|
+
* Learner completion percentage
|
|
35
|
+
*/
|
|
36
|
+
completion_percentage: number | null;
|
|
37
|
+
/**
|
|
38
|
+
* Last activity timestamp for the learner
|
|
39
|
+
*/
|
|
40
|
+
last_activity: string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Learner rating for the content, if available
|
|
43
|
+
*/
|
|
44
|
+
rating: number | null;
|
|
45
|
+
/**
|
|
46
|
+
* Learner review content, if available
|
|
47
|
+
*/
|
|
48
|
+
review: string | null;
|
|
49
|
+
/**
|
|
50
|
+
* Additional learner-specific metadata
|
|
51
|
+
*/
|
|
52
|
+
details?: Record<string, any>;
|
|
53
|
+
};
|
|
54
|
+
|