summaryrefslogtreecommitdiff
path: root/courses.go
diff options
context:
space:
mode:
Diffstat (limited to 'courses.go')
-rw-r--r--courses.go23
1 files changed, 6 insertions, 17 deletions
diff --git a/courses.go b/courses.go
index d501368..4e1ea51 100644
--- a/courses.go
+++ b/courses.go
@@ -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()