Commit 0e406241 by Иван Кубота

add /api/quiz/notCompleted/:userID and /api/quiz/attempt/:attemptID

parent e350172a
...@@ -294,9 +294,50 @@ module.exports = { ...@@ -294,9 +294,50 @@ module.exports = {
method: 'GET', method: 'GET',
summary: 'Get active quiz for user', summary: 'Get active quiz for user',
fn: async function (args) { fn: async function (args) {
// sub my completed attempt
return await asyncPool(`select * from quiz return await asyncPool(`select * from quiz
left join quiz_position on quiz_position.quiz_id = quiz.id left join quiz_position on quiz_position.quiz_id = quiz.id
WHERE user_position_id=(SELECT position_id from users WHERE id=?) and end_date>=CURDATE();`, [args.userID]); WHERE user_position_id=(SELECT position_id from users WHERE id=?) and end_date>=CURDATE();`, [args.userID]);
} }
},
'/api/quiz/notCompleted/:userID': {
options: {
userID: {required: false, description: 'id of user', type: Number},
},
method: 'GET',
summary: 'Get not completed attempts by user',
fn: async function (args) {
// sub my completed attempt
return await asyncPool(`select *, quiz_attempt.id as attempt_id from quiz_attempt left join quiz_position on quiz_position.id = quiz_attempt.quiz_position_id where user_id=? and completed=0;`, [args.userID]);
}
},
'/api/quiz/attempt/:attemptID': {
options: {
attemptID: {required: false, description: 'id of attempt', type: Number},
},
method: 'GET',
summary: 'Get not completed attempts by user',
fn: async function (args) {
// sub my completed attempt
var questions = await asyncPool(`select * from quiz_question where attempt_id=?;`, [args.attemptID]);
var qHash = questions.reduce((s,q)=>{
s[q.id] = q;
q.answers = [];
return s;
}, {});
var answers = await asyncPool('select * from quiz_answer where quiz_answer.quiz_question_id in (select id from quiz_question where attempt_id=?);', [args.attemptID])
answers.forEach(a=>{
qHash[a.question_id].answers.push(a);
});
questions.sort((a,b)=>b.number-a.number);
questions.forEach(q=>q.answers.sort((a,b)=>b.id-a.id))
return questions;
}
} }
}; };
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment