package handlers import ( "context" "Yimaru-Backend/internal/domain" "github.com/gofiber/fiber/v2" ) func (h *Handler) applyExamPrepAccessCatalogCourses(ctx context.Context, c *fiber.Ctx, items []domain.ExamPrepCatalogCourse) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } for i := range items { if err := h.lmsProgressSvc.ApplyExamPrepAccessCatalogCourse(ctx, role, userID, &items[i]); err != nil { return err } } return nil } func (h *Handler) applyExamPrepAccessCatalogCourse(ctx context.Context, c *fiber.Ctx, item *domain.ExamPrepCatalogCourse) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } return h.lmsProgressSvc.ApplyExamPrepAccessCatalogCourse(ctx, role, userID, item) } func (h *Handler) applyExamPrepAccessUnits(ctx context.Context, c *fiber.Ctx, items []domain.ExamPrepUnit) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } for i := range items { if err := h.lmsProgressSvc.ApplyExamPrepAccessUnit(ctx, role, userID, &items[i]); err != nil { return err } } return nil } func (h *Handler) applyExamPrepAccessUnit(ctx context.Context, c *fiber.Ctx, item *domain.ExamPrepUnit) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } return h.lmsProgressSvc.ApplyExamPrepAccessUnit(ctx, role, userID, item) } func (h *Handler) applyExamPrepAccessModules(ctx context.Context, c *fiber.Ctx, items []domain.ExamPrepModule) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } for i := range items { if err := h.lmsProgressSvc.ApplyExamPrepAccessModule(ctx, role, userID, &items[i]); err != nil { return err } } return nil } func (h *Handler) applyExamPrepAccessModule(ctx context.Context, c *fiber.Ctx, item *domain.ExamPrepModule) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } return h.lmsProgressSvc.ApplyExamPrepAccessModule(ctx, role, userID, item) } func (h *Handler) applyExamPrepAccessLessons(ctx context.Context, c *fiber.Ctx, items []domain.ExamPrepLesson) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } for i := range items { if err := h.lmsProgressSvc.ApplyExamPrepAccessLesson(ctx, role, userID, &items[i]); err != nil { return err } } return nil } func (h *Handler) applyExamPrepAccessLesson(ctx context.Context, c *fiber.Ctx, item *domain.ExamPrepLesson) error { role, _ := c.Locals("role").(domain.Role) if !role.IsCustomerLearnerRole() { return nil } userID, ok := c.Locals("user_id").(int64) if !ok || userID == 0 { return nil } return h.lmsProgressSvc.ApplyExamPrepAccessLesson(ctx, role, userID, item) }