package question import ( "strings" domain "knowfoolery/backend/services/question-bank-service/internal/domain/question" sharedsecurity "knowfoolery/backend/shared/infra/security" ) func sanitizeAndValidateItem(item BulkImportItem) (BulkImportItem, error) { sanitized := BulkImportItem{ Theme: sharedsecurity.SanitizeTheme(item.Theme), Text: sharedsecurity.SanitizeQuestionText(item.Text), Answer: sharedsecurity.SanitizeAnswer(item.Answer), Hint: sharedsecurity.SanitizeQuestionText(item.Hint), Difficulty: item.Difficulty, } if sanitized.Theme == "" || sanitized.Text == "" || sanitized.Answer == "" { return BulkImportItem{}, domain.ErrValidationFailed } if !domain.IsValidDifficulty(sanitized.Difficulty) { return BulkImportItem{}, domain.ErrValidationFailed } if strings.TrimSpace(sanitized.Hint) == "" { sanitized.Hint = "" } return sanitized, nil }