Skip to content

Commit

Permalink
fix: type errors and add test api url for update best review test
Browse files Browse the repository at this point in the history
  • Loading branch information
Gerbera3090 committed Jan 14, 2025
1 parent 890bbe7 commit 1cae752
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 6 deletions.
11 changes: 11 additions & 0 deletions src/common/entities/EReview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,17 @@ export namespace EReview {
});
export type Details = Prisma.review_reviewGetPayload<typeof Details>;

export const WithLectures =
Prisma.validator<Prisma.review_reviewDefaultArgs>()({
include: {
lecture: ELecture.Basic,
},
});

export type WithLectures = Prisma.review_reviewGetPayload<
typeof WithLectures
>;

export namespace EReviewVote {
export const Basic =
Prisma.validator<Prisma.review_reviewvoteDefaultArgs>()({});
Expand Down
11 changes: 9 additions & 2 deletions src/modules/reviews/reviews.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import {
Query,
} from '@nestjs/common';
import { session_userprofile } from '@prisma/client';
import { ReviewProhibited } from '@src/common/decorators/prohibit-review.decorator';
import { GetUser } from 'src/common/decorators/get-user.decorator';
import { Public } from 'src/common/decorators/skip-auth.decorator';
import { IReview } from 'src/common/interfaces/IReview';
import { ReviewsService } from './reviews.service';
import { EReview } from '../../common/entities/EReview';
import { ReviewsService } from './reviews.service';
import EReviewVote = EReview.EReviewVote;
import { ReviewProhibited } from '@src/common/decorators/prohibit-review.decorator';

@Controller('api/reviews')
export class ReviewsController {
Expand Down Expand Up @@ -52,6 +52,13 @@ export class ReviewsController {
}
}

@Get('update-best-reviews')
async triggerUpdateBestReviews() {
console.log('Triggered manual update for Best Reviews');
await this.reviewsService.updateBestReviewsCron();
return { message: 'BestReviews update triggered successfully' };
}

@Public()
@Get(':reviewId')
async getReviewInstance(
Expand Down
4 changes: 2 additions & 2 deletions src/modules/reviews/reviews.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export class ReviewsService {

@Cron('0 0 * * *') // 매일 자정에 실행하는 Cron 작업 설정: 과거 update-best-reviews.py를 계승
async updateBestReviewsCron() {
function calculateKey(review: any): number {
function calculateKey(review: EReview.WithLectures): number {
const baseYear = new Date().getFullYear();
const lectureYear = review.lecture.year;
const yearDiff = baseYear - lectureYear > 0 ? baseYear - lectureYear : 0;
Expand All @@ -189,7 +189,7 @@ export class ReviewsService {
}

function getBestReviews(
reviews: review_review[],
reviews: EReview.WithLectures[],
minLikedCount: number,
maxResultCount: number,
): review_review[] {
Expand Down
10 changes: 8 additions & 2 deletions src/prisma/repositories/review.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ export class ReviewsRepository {
}

// Fetch humanity reviews (HSS department)
async getHumanityReviews() {
async getHumanityReviews(): Promise<EReview.WithLectures[]> {
return this.prisma.review_review.findMany({
where: {
course: {
Expand All @@ -412,11 +412,14 @@ export class ReviewsRepository {
},
},
},
include: {
lecture: true,
},
});
}

// Fetch major reviews (Non-HSS department)
async getMajorReviews() {
async getMajorReviews(): Promise<EReview.WithLectures[]> {
return this.prisma.review_review.findMany({
where: {
NOT: {
Expand All @@ -427,6 +430,9 @@ export class ReviewsRepository {
},
},
},
include: {
lecture: true,
},
});
}

Expand Down

0 comments on commit 1cae752

Please sign in to comment.