static async updateTaskStatus()

in edu-analytics-be/web/app/entity/studentEntity.js [138:167]


    static async updateTaskStatus(id) {
        const sql = `SELECT * FROM student_analytics where id=${id};`;
        const analytics = Object.values(JSON.parse(JSON.stringify(await query(sql))))[0];
        const notStartedCountQuery = `SELECT  count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'NotStarted';`;
        const notStartedCount = Object.values(JSON.parse(JSON.stringify(await query(notStartedCountQuery))))[0];

        const inprogressCountQuery = `SELECT  count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'Inprogress';`;
        const inprogressCount = Object.values(JSON.parse(JSON.stringify(await query(inprogressCountQuery))))[0];

        const completedCountQuery = `SELECT  count(*) as count FROM student_analytics where studentId = ${analytics.studentId} and classRoomTaskId='${analytics.classRoomTaskId}' and videoStatus = 'Completed';`;
        const completedCount = Object.values(JSON.parse(JSON.stringify(await query(completedCountQuery))))[0];

        let status = 'NotStarted';
        let completedDate = null;
        if (notStartedCount.count === 0 && inprogressCount.count === 0 && completedCount.count > 0) {
            status = 'Completed';
            completedDate = new Date(new Date().getTime() - new Date().getTimezoneOffset() * 60 * 1000).toJSON().slice(0, 19).replace('T', ' ');
            const updateTaskStatusSql = `UPDATE tasks_status SET status = '${status}',completedDate='${completedDate}' WHERE classRoomTaskId = '${analytics.classRoomTaskId}' AND studentId = ${analytics.studentId};`;
            console.log('updateTaskStatusSql:', updateTaskStatusSql);
            await query(updateTaskStatusSql);

        } else if (inprogressCount.count > 0 || completedCount.count > 0) {
            status = 'Inprogress';
            const updateTaskStatusSql = `UPDATE tasks_status SET status = '${status}',completedDate=${completedDate} WHERE classRoomTaskId = '${analytics.classRoomTaskId}' AND studentId = ${analytics.studentId};`;
            console.log('updateTaskStatusSql:', updateTaskStatusSql);
            await query(updateTaskStatusSql);
        }


    }