Skip to content

Commit

Permalink
feat: write review rule
Browse files Browse the repository at this point in the history
  • Loading branch information
dujiajun committed Jul 10, 2024
1 parent 0b0e44f commit 791c667
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions service/review.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@ func GetReviewCount(ctx context.Context, filter domain.ReviewFilter) (int64, err
}

func CreateReview(ctx context.Context, review dto.UpdateReviewDTO, user *domain.User) (int64, error) {
if !validateReview(ctx, review, user) {
return 0, errors.New("validate review error")
}
query := repository.NewReviewQuery()
reviewPO := converter.ConvertUpdateReviewDTOToPO(review, user.ID)
reviewID, err := query.CreateReview(ctx, reviewPO)
Expand All @@ -99,6 +102,9 @@ func UpdateReview(ctx context.Context, review dto.UpdateReviewDTO, user *domain.
if review.ID == 0 {
return errors.New("no review id")
}
if !validateReview(ctx, review, user) {
return errors.New("validate review error")
}
query := repository.NewReviewQuery()
reviewPO := converter.ConvertUpdateReviewDTOToPO(review, user.ID)
_, err := query.UpdateReview(ctx, reviewPO)
Expand All @@ -118,5 +124,16 @@ func DeleteReview(ctx context.Context, reviewID int64) error {
}

func validateReview(ctx context.Context, review dto.UpdateReviewDTO, user *domain.User) bool {
// 1. validate course and semester exists
offeredCourseQuery := repository.NewOfferedCourseQuery()
offeredCourse, err := offeredCourseQuery.GetOfferedCourse(ctx, offeredCourseQuery.WithCourseID(review.CourseID), offeredCourseQuery.WithSemester(review.Semester))
if err != nil || offeredCourse == nil {
return false
}

// 2. validate comment

// 3. validate review frequency

return true
}

0 comments on commit 791c667

Please sign in to comment.