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]);
}
},
'/api/quiz/notCompleted/:userID':{
options:{
userID:{required:false,description:'id of user',type:Number},
},
method:'GET',
summary:'Get not completed attempts by user',
fn:asyncfunction(args){
// sub my completed attempt
returnawaitasyncPool(`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:asyncfunction(args){
// sub my completed attempt
varquestions=awaitasyncPool(`select * from quiz_question where attempt_id=?;`,[args.attemptID]);
varqHash=questions.reduce((s,q)=>{
s[q.id]=q;
q.answers=[];
returns;
},{});
varanswers=awaitasyncPool('select * from quiz_answer where quiz_answer.quiz_question_id in (select id from quiz_question where attempt_id=?);',[args.attemptID])