Skip to content

Commit

Permalink
feat: update last lesson return in statistics response
Browse files Browse the repository at this point in the history
  • Loading branch information
wielopolski authored and piotr-pajak committed Nov 25, 2024
1 parent a26fe52 commit da3bb7e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
22 changes: 15 additions & 7 deletions apps/api/src/lessons/repositories/lessons.repository.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Inject, Injectable } from "@nestjs/common";
import { and, count, desc, eq, inArray, isNotNull, sql } from "drizzle-orm";
import { and, count, desc, eq, inArray, isNotNull, isNull, sql } from "drizzle-orm";

import { DatabasePg, type UUIDType } from "src/common";
import { STATES } from "src/common/states";
Expand Down Expand Up @@ -569,18 +569,26 @@ export class LessonsRepository {
.limit(1);
}

async getLastLessonItemForUser(userId: UUIDType) {
async getLastInteractedOrNextLessonItemForUser(userId: UUIDType) {
const [lastLessonItem] = await this.db
.select({
id: studentCompletedLessonItems.lessonItemId,
lessonId: studentCompletedLessonItems.lessonId,
courseId: studentCompletedLessonItems.courseId,
id: sql<string>`${studentCompletedLessonItems.lessonItemId}`,
lessonId: sql<string>`${studentCompletedLessonItems.lessonId}`,
courseId: sql<string>`${studentCompletedLessonItems.courseId}`,
courseTitle: sql<string>`${courses.title}`,
courseDescription: sql<string>`${courses.description}`,
})
.from(studentCompletedLessonItems)
.from(studentLessonsProgress)
.leftJoin(studentCompletedLessonItems, and(eq(studentCompletedLessonItems.studentId, userId)))
.where(
and(
eq(studentCompletedLessonItems.studentId, userId),
eq(studentLessonsProgress.lessonId, studentCompletedLessonItems.lessonId),
eq(studentLessonsProgress.courseId, studentCompletedLessonItems.courseId),
isNull(studentLessonsProgress.completedAt),
),
)
.leftJoin(courses, eq(studentCompletedLessonItems.courseId, courses.id))
.where(eq(studentCompletedLessonItems.studentId, userId))
.orderBy(desc(studentCompletedLessonItems.updatedAt))
.limit(1);

Expand Down
3 changes: 2 additions & 1 deletion apps/api/src/statistics/statistics.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@ export class StatisticsService {
};

private async getLassLesson(userId: string) {
const lastLessonItem = await this.lessonsRepository.getLastLessonItemForUser(userId);
const lastLessonItem =
await this.lessonsRepository.getLastInteractedOrNextLessonItemForUser(userId);

if (!lastLessonItem) return null;

Expand Down

0 comments on commit da3bb7e

Please sign in to comment.