diff --git a/src/src/sessions/sessions.controller.ts b/src/src/sessions/sessions.controller.ts index f5ef59400..9f9f633ff 100644 --- a/src/src/sessions/sessions.controller.ts +++ b/src/src/sessions/sessions.controller.ts @@ -90,4 +90,21 @@ export class SessionsController { response, ); } + + @Post('/session-wegithage/:id') + @UsePipes(ValidationPipe) + @UseGuards(new AuthGuard()) + getSessionWegithage( + @Req() request: any, + @Res() response: Response, + @Param('id') id: number, + @Body() body: any, + ) { + return this.sessionService.getSessionWegithage( + id, + body, + request, + response, + ); + } } diff --git a/src/src/sessions/sessions.service.ts b/src/src/sessions/sessions.service.ts index 8c44580fb..4257889ba 100644 --- a/src/src/sessions/sessions.service.ts +++ b/src/src/sessions/sessions.service.ts @@ -388,4 +388,51 @@ export class SessionsService { }); } } + + public async getSessionWegithage( + id: any, + bodyData: any, + request: any, + response: any, + ) { + const camp_id = id; + + const data = `SELECT +camp_id, +learning_lesson_plan_id, +MAX(CASE + WHEN DATE(created_at) < CURRENT_DATE AND DATE(updated_at) = CURRENT_DATE THEN 0.5 + WHEN DATE(created_at) = CURRENT_DATE AND DATE(updated_at) = CURRENT_DATE THEN 1 + WHEN DATE(created_at) = CURRENT_DATE AND DATE(updated_at) > CURRENT_DATE THEN 0.5 + ELSE 0 +END) AS weightage_completed +FROM +learning_sessions_tracker +WHERE +camp_id = ${camp_id} and DATE(created_at) = CURRENT_DATE or DATE(updated_at) = CURRENT_DATE +GROUP BY +camp_id, +learning_lesson_plan_id`; + const result = ( + await this.hasuraServiceFromServices.executeRawSql(data) + ).result; + const wegithagerusult = + this.hasuraServiceFromServices.getFormattedData(result); + + if (wegithagerusult) { + return response.json({ + status: 200, + success: true, + message: 'Successfully retrieved data', + data: wegithagerusult, + }); + } else { + return response.json({ + status: 500, + success: false, + message: 'Error retrieving data', + data: {}, + }); + } + } }