diff options
Diffstat (limited to 'courses.go')
-rw-r--r-- | courses.go | 23 |
1 files changed, 6 insertions, 17 deletions
@@ -199,10 +199,12 @@ func populateUserCourseGroups(ctx context.Context, userCourseGroups *userCourseG if err != nil { return fmt.Errorf("error fetching user's choices while populating course groups: %w", err) } - thisGroupName, err := getCourseGroupFromCourseID(ctx, thisCourseID) - if err != nil { - return fmt.Errorf("error while populating course groups: %w", err) - } + var thisGroupName courseGroupT + func() { + coursesLock.RLock() + defer coursesLock.RUnlock() + thisGroupName = courses[thisCourseID].Group + }() if (*userCourseGroups)[thisGroupName] { return fmt.Errorf("%w: user %v, group %v", errMultipleChoicesInOneGroup, userID, thisGroupName) } @@ -211,19 +213,6 @@ func populateUserCourseGroups(ctx context.Context, userCourseGroups *userCourseG return nil } -func getCourseGroupFromCourseID(ctx context.Context, courseID int) (courseGroupT, error) { - var ret courseGroupT - err := db.QueryRow( - ctx, - "SELECT cgroup FROM courses WHERE id = $1", - courseID, - ).Scan(&ret) - if err != nil { - return ret, fmt.Errorf("error querying group of course: %w", err) - } - return ret, nil -} - func (course *courseT) decrementSelectedAndPropagate() { func() { course.SelectedLock.Lock() |