Skip to content

Commit

Permalink
Updated teachers services to also capture winner of the day and inclu…
Browse files Browse the repository at this point in the history
…de all previous winner respective to that grade and team
  • Loading branch information
web-dev-akash committed Jan 12, 2024
1 parent 0ed3f32 commit d6bc17f
Showing 1 changed file with 74 additions and 5 deletions.
79 changes: 74 additions & 5 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2049,12 +2049,14 @@ const getDailyReports = async (grade, team) => {
Authorization: `Bearer ${zohoToken}`,
},
};

const date = new Date();
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, "0");
const day = date.getDate().toString().padStart(2, "0");
const formattedDateStart = `${year}-${month}-${day}T00:00:00+05:30`;
const formattedDateEnd = `${year}-${month}-${day}T23:59:59+05:30`;

const reportBody = {
select_query: `select Session.Session_Grade as Grade, Contact_Name.Email as Email, Contact_Name.Student_Name as Student_Name, Contact_Name.Team as Team,Contact_Name.id as Student_ID, Session_Date_Time, Quiz_Score from Attempts where (Session.Session_Grade = '${grade}' and Contact_Name.Team = ${team}) and Session_Date_Time between '${formattedDateStart}' and '${formattedDateEnd}'`,
};
Expand All @@ -2064,21 +2066,30 @@ const getDailyReports = async (grade, team) => {
reportBody,
zohoConfig
);

if (report.status >= 400) {
return {
status: attempt.status,
mode: "internalservererrorinfindingattempt",
};
}

if (report.status == 204) {
return {
status: report.status,
mode: "noreport",
};
}

const winnerBody = {
select_query: `select Contact_Name.Student_Name as Student_Name, Contact_Name.Team as Team,Contact_Name.id as Student_ID, Session_Date_Time, Quiz_Score, Quiz_Winner from Attempts where (Session.Session_Grade = '${grade}' and Contact_Name.Team = ${team}) and Quiz_Winner is not null`,
};

const winner = await axios.post(
`https://www.zohoapis.com/crm/v3/coql`,
winnerBody,
zohoConfig
);

const previousWinners = winner?.data?.data;
const reports = report.data.data;
let totalScore = 0;

Expand All @@ -2095,6 +2106,7 @@ const getDailyReports = async (grade, team) => {
mode: "successReport",
totalScore: totalScore,
reports: finalReports,
previousWinners: previousWinners,
};
};

Expand All @@ -2110,7 +2122,8 @@ app.post("/teachers/report", async (req, res) => {
});

const updateTeachersAttendance = async (requestBody) => {
const { sessionDate, zoom, grade, explanation, contactId } = requestBody;
const { sessionDate, zoom, grade, explanation, contactId, winner } =
requestBody;
const zohoToken = await getZohoTokenOptimized();
const zohoConfig = {
headers: {
Expand All @@ -2126,8 +2139,8 @@ const updateTeachersAttendance = async (requestBody) => {
} else {
date.add(19, "hours");
}

const sessionDateTime = date.format("YYYY-MM-DDTHH:mm:ss+05:30");

const sessionBody = {
select_query: `select id as Session_ID, Session_Date_Time from Sessions where Session_Grade = '${grade}' and Session_Date_Time = '${sessionDateTime}'`,
};
Expand All @@ -2152,8 +2165,64 @@ const updateTeachersAttendance = async (requestBody) => {
};
}

const sessionId = session.data.data[0].Session_ID;
const attemptBody = {
select_query: `select id as Attempt_id, Session_Date_Time from Attempts where Contact_Name = '${winner}' and Session_Date_Time = '${sessionDateTime}'`,
};

const attempt = await axios.post(
`https://www.zohoapis.com/crm/v3/coql`,
attemptBody,
zohoConfig
);

if (attempt.status >= 400) {
return {
status: attempt.status,
mode: "internalservererrorinfindingattempt",
};
}

if (attempt.status == 204) {
return {
status: attempt.status,
mode: "noattempt",
};
}

const attemptId = attempt.data.data[0].Attempt_id;
const updateAttemptBody = {
data: [
{
id: attemptId,
Quiz_Winner: sessionDate,
$append_values: {
Quiz_Winner: true,
},
},
],
duplicate_check_fields: ["id"],
apply_feature_execution: [
{
name: "layout_rules",
},
],
trigger: ["workflow"],
};

const updateAttempt = await axios.post(
`https://www.zohoapis.com/crm/v3/Attempts/upsert`,
updateAttemptBody,
zohoConfig
);

if (updateAttempt.data.data[0].status !== "success") {
return {
mode: "errorInUpdating",
attempt: updateAttempt.data.data[0],
};
}

const sessionId = session.data.data[0].Session_ID;
const body = {
data: [
{
Expand Down

0 comments on commit d6bc17f

Please sign in to comment.