id của hoạt động (có thể là video, câu hỏi ôn tập hoặc bài đọc)
userEmail*
string
email của người dùng
enrolledId*
string
id của object đại diện cho khóa học mà học viên đang học, được lấy về từ API getCourseDetail
Join Class
POSThttps://api.agilearn.app/api-joinClass/v2
Headers
Name
Type
Description
Content-type*
string
application/json
Accept*
string
application/json
Authorization*
string
{access_token}
Request Body
Name
Type
Description
classId*
string
id của lớp mà học viên muốn tham gia
userEmail*
string
email của học viên muốn tham gia lớp
learningSpaceId*
string
learning space của lớp đang sử dụng
Execute Quiz
POSThttps://api.agilearn.app/api-executeQuiz/v2
Sử dụng khi học viên bắt đầu làm bài thi, gọi API này sẽ tạo ra một submission đại diện cho lần làm bài đó của học viên
Headers
Name
Type
Description
Accept*
string
application/json
Content-type*
string
application/json
Authorization*
string
{access_token}
Request Body
Name
Type
Description
userEmail*
string
email của học viên làm bài
enrolledId*
string
id của object đại diện cho khóa học mà học viên đang học, được lấy từ API getCourseDetail
quizId*
string
id của bài thi
Submit Quiz
POSThttps://api.agilearn.app/api-submitQuiz/v2
Chấm bài làm của học viên và trả về kết quả, lưu kết quả vào submission được tạo ra khi gọi API executeQuiz
Headers
Name
Type
Description
Content-type*
string
application/json
Accept*
string
application/json
Authorization*
string
{access_token}
Request Body
Name
Type
Description
userAnswers*
object
câu trả lời của học viên
userEmail*
string
email của học viên nộp bài
enrolledId*
string
id của object đại diện cho khóa học mà học viên đang học, được lấy từ API getCourseDetail
submissionId*
string
id của submission được tạo ra khi học viên bắt đầu làm bài, được lấy từ API executeQuiz
userAnswers là object đại diện cho câu trả lời của học viên, trông giống như dưới đây:
Giải thích: id của câu hỏi, câu trả lời được lấy về từ API executeQuiz
Với mỗi câu hỏi, tạo một object với key là id của câu hỏi. Học viên có thể chọn nhiều câu trả lời, với một câu trả lời, thêm vào object answers một element có dạng "{id của câu trả lời}": true
Nếu không truyền vào tham số userEmail, api sẽ trả về thông tin bài nộp và điểm của tất cả học viên đã nộp bài, nếu có truyền vào thì api sẽ trả về thông tin bài nộp và điểm của học viên đó
id của lần làm bài học viên đang thực hiện, được lấy về từ api classQuizExecute
classId*
String
id của lớp chứa bài kiểm tra
learningSpaceId*
String
id của learning space chứa lớp
selectedAnswers*
object
object đại diện cho câu trả lời của học viên
quizId*
String
id bài kiểm tra học viên đang làm
userEmail*
String
email của học viên nộp bài
selectedAnswers là object đại diện cho câu trả lời của học viên, trông giống như dưới đây:
Giải thích: id của câu hỏi, câu trả lời được lấy về từ API classQuizExecute
Với mỗi câu hỏi, tạo một object với key là id của câu hỏi. Học viên có thể chọn nhiều câu trả lời, với một câu trả lời, thêm vào object answers một element có dạng "{id của câu trả lời}": true
Thời gian sống của các link chứng chỉ, thời gian mặc định là 60 phút
type
String
Loại chứng chỉ muốn lấy, có 2 loại chứng chỉ là chứng chỉ khóa học và chứng chỉ từ bài thi, giá trị có thể truyền vào là "COURSE" hoặc "EXAM"
sourceId
String
Id của khóa học hoặc bài thi đã có chứng chỉ, hiện tại với bài thi (EXAM), client chưa thể lấy được id, còn với khóa học (COURSE) thì id này sẽ là enrolledId, id của object đại diện cho khóa học của học viên, được lấy từ api getCourseDetail
"userAnswers": {
"4pW4QwtMrDb9IaYV36yN": { // id của câu hỏi
"answeredAt": "Thu, 09 Sep 2021 03:20:45 GMT", // Thời gian trả lời câu hỏi, định dạng GMT
"answers": {
"WoivEeu8uuU8K8Ul9AKQ": true // id của câu trả lời học viên chọn
}
}
}
{
"status": true,
"data": [
{
"id": string,
"name": string,
"description": string,
"appearances": {
"thumbnailUrl": string
}
"timeTracks": {
"createdAt": "Tue, 24 Aug 2021 06:34:36 GMT", // thời gian ở định dạng GMT
"updatedAt": "Tue, 24 Aug 2021 06:39:35 GMT"
}
},
]
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
"status": true,
"data": [
{
"id": string,
"name": string,
"description": string,
"appearances": {
"thumbnailUrl": string
}
"timeTracks": {
"createdAt": "Tue, 24 Aug 2021 06:34:36 GMT", // thời gian ở định dạng GMT
"updatedAt": "Tue, 24 Aug 2021 06:39:35 GMT"
}
"sections": [
{
"activities": [
{
....
}
]
},
]
},
]
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
status: true,
data: {
classId: string
}
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
status: false,
reason: "",
message: ""
}
{
"status": true,
"data": {
"settings": { // settings của bài thi
"randomOrder": boolean,
"showOverallFeedback": boolean,
"recordResultOn": "HIGHEST",
"pointToPass": number,
"limitTime": {
"value": number,
"checked": boolean
},
"showCorrectAnswers": boolean,
"deductPoint": {
"checked": boolean,
"value": number
},
"showHistory": true,
"maxAttempt": 10
},
"title": string,
"isRequired": boolean,
"id": string,
"submissionId": string, // id của object đại diện cho lần làm bài của học viên
"sectionId": string,
"questions": [
{
"bloomLadderLevel": "Remembering",
"content": string,
"type": "SINGLE" | "MULTIPLE" | "BOOLEAN",
"id": string,
"answers": [
{
"content": string,
"overallFeedback": string,
"ordering": number,
"id": string
},
],
"ordering": 0
}
]
}
}
{
// Response
}
{
// Response
}
{
// Response
}
{
// Response
}
{
// Response
}
{
// Response
}
{
// Response
}
"selectedAnswers": {
"4pW4QwtMrDb9IaYV36yN": { // id của câu hỏi
"answeredAt": "Thu, 09 Sep 2021 03:20:45 GMT", // Thời gian trả lời câu hỏi, định dạng GMT
"answers": {
"WoivEeu8uuU8K8Ul9AKQ": true // id của câu trả lời học viên chọn
}
}
}