Skip to content

Commit

Permalink
Merge pull request #1027 from tekdi/feat-event
Browse files Browse the repository at this point in the history
Merge `Feat event` into `Release 2.0.0`
  • Loading branch information
sagarkoshti1990 authored Apr 18, 2024
2 parents 7891406 + 6545d50 commit ba740c8
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 66 deletions.
11 changes: 9 additions & 2 deletions src/src/attendances/attendances.core.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,15 +231,22 @@ export class AttendancesCoreService {
return result;
}

async getUserAttendancePresentList(user_id, context, context_id) {
async getUserAttendancePresentList({
user_id,
context,
context_id,
event_end_date,
event_start_date,
}) {
const query = `query MyQuery {
attendance(where: {user_id: {_eq: ${user_id}}, context: {_eq: ${context}}, context_id: {_eq:${context_id}}, status: {_eq: "present"}}) {
attendance(where: {user_id: {_eq: ${user_id}}, context: {_eq: ${context}}, context_id: {_eq:${context_id}}, status: {_eq: "present"}, date_time: {_gte: "${event_start_date}", _lte: "${event_end_date}"}}, distinct_on: date_time) {
id
status
context
context_id
}
}`;

try {
const result_response =
await this.hasuraServiceFromServices.getData({ query });
Expand Down
47 changes: 34 additions & 13 deletions src/src/cron/prepareCertificateHtml.cron.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { html_code } from 'src/lms/certificate_html';
import { LMSCertificateDto } from 'src/lms/dto/lms-certificate.dto';
import { UserService } from 'src/user/user.service';
import { HasuraService } from '../services/hasura/hasura.service';
import { json } from 'stream/consumers';

const moment = require('moment');
const qr = require('qrcode');
Expand Down Expand Up @@ -71,21 +72,35 @@ export class PrepareCertificateHtmlCron {

//get attendance status
let attendance_valid = false;
const startMoment = moment(
userTestData?.events?.[0]?.start_date,
);
const endMoment = moment(userTestData?.events?.[0]?.end_date);
let datesD = [];
while (startMoment.isSameOrBefore(endMoment)) {
datesD.push(startMoment.format('YYYY-MM-DD'));
startMoment.add(1, 'day');
}

let usrAttendanceList =
await this.attendanceCoreService.getUserAttendancePresentList(
user_id,
context,
context_id,
{
user_id,
context,
context_id,
event_start_date: `${userTestData?.events?.[0]?.start_date}T00:00:00`,
event_end_date: `${userTestData?.events?.[0]?.end_date}T23:59:59`,
},
);

console.log('usrAttendanceList list', usrAttendanceList);
let minAttendance = parseInt(
this.configService.get<string>(
'LMS_CERTIFICATE_ISSUE_MIN_ATTENDANCE',
),
);
console.log('events-dates', JSON.stringify(datesD));
let minAttendance = datesD.length;

if (usrAttendanceList.length >= minAttendance) {
attendance_valid = true;
}

//check certificate criteria
if (userTestData?.score >= minPercentage && attendance_valid) {
issue_status = 'true';
Expand Down Expand Up @@ -217,10 +232,19 @@ export class PrepareCertificateHtmlCron {
if (issue_status == 'true') {
testTrackingUpdateData['certificate_status'] = issue_status;
}
await this.updateTestTrackingData(
const result = await this.updateTestTrackingData(
userTestData?.id,
testTrackingUpdateData,
);
if (issue_status === 'false') {
console.log(
`user_id ${user_id} name ${user_name} testID ${test_id} Not Genrated event date count ${minAttendance} attendance count ${usrAttendanceList.length}`,
);
} else if (result) {
console.log(
`user_id ${user_id} name ${user_name} testID ${test_id} Certificate Genrated Sucssefully`,
);
}
}
}
}
Expand Down Expand Up @@ -278,10 +302,9 @@ export class PrepareCertificateHtmlCron {
}
}
`;
console.log('fetchTestTrackingData query', query);

try {
const result_query = await this.hasuraService.getData({ query });
console.log('result_query', result_query);
const data_list = result_query?.data?.lms_test_tracking;
if (data_list) {
return data_list;
Expand Down Expand Up @@ -382,8 +405,6 @@ export class PrepareCertificateHtmlCron {
}
}
async updateTestTrackingData(id, testTrackingUpdateData) {
console.log('id', id);
console.log('testTrackingUpdateData', testTrackingUpdateData);
let setQuery = ``;
if (testTrackingUpdateData?.certificate_status) {
setQuery += `certificate_status: ${testTrackingUpdateData.certificate_status}`;
Expand Down
28 changes: 4 additions & 24 deletions src/src/events/events.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -301,11 +301,13 @@ export class EventsService {
);

if (body?.start_date) {
filter.push(`start_date: {_eq:"${body?.start_date}"}`);
filter.push(`start_date: {_gte:"${body?.start_date}"}`);
}

if (body?.end_date) {
filter.push(`end_date: {_eq:"${body?.end_date}"}`);
filter.push(`end_date: {_lte:"${body?.end_date}"}`);
} else if (body?.start_date) {
filter.push(`end_date: {_lte:"${body?.start_date}"}`);
}

const allIpList = getIps?.data?.users.map((curr) => curr.id);
Expand Down Expand Up @@ -342,28 +344,6 @@ export class EventsService {
created_by
updated_by
user_id
attendances {
context
context_id
created_by
date_time
id
lat
long
rsvp
status
updated_by
user_id
user {
first_name
id
last_name
middle_name
profile_url
aadhar_verified
aadhaar_verification_mode
}
}
}
}`,
};
Expand Down
64 changes: 37 additions & 27 deletions src/src/lms/certificate_html.ts

Large diffs are not rendered by default.

0 comments on commit ba740c8

Please sign in to comment.