34 lines
949 B
Go
34 lines
949 B
Go
package repository
|
|
|
|
import (
|
|
"context"
|
|
|
|
"Yimaru-Backend/internal/domain"
|
|
)
|
|
|
|
// GetLMSUserProgressSnapshot returns all completed lesson, module, course, and program IDs for a user.
|
|
func (s *Store) GetLMSUserProgressSnapshot(ctx context.Context, userID int64) (domain.LMSUserProgress, error) {
|
|
lessons, err := s.queries.ListLMSCompletedLessonIDsByUser(ctx, userID)
|
|
if err != nil {
|
|
return domain.LMSUserProgress{}, err
|
|
}
|
|
mods, err := s.queries.ListLMSCompletedModuleIDsByUser(ctx, userID)
|
|
if err != nil {
|
|
return domain.LMSUserProgress{}, err
|
|
}
|
|
courses, err := s.queries.ListLMSCompletedCourseIDsByUser(ctx, userID)
|
|
if err != nil {
|
|
return domain.LMSUserProgress{}, err
|
|
}
|
|
programs, err := s.queries.ListLMSCompletedProgramIDsByUser(ctx, userID)
|
|
if err != nil {
|
|
return domain.LMSUserProgress{}, err
|
|
}
|
|
return domain.LMSUserProgress{
|
|
LessonIDs: lessons,
|
|
ModuleIDs: mods,
|
|
CourseIDs: courses,
|
|
ProgramIDs: programs,
|
|
}, nil
|
|
}
|