From f8236a0f6c64faea1a1870a3acc6c0d87bb7ef67 Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Fri, 18 Jul 2025 16:35:19 +0200 Subject: [PATCH] Fix missing err handler Signed-off-by: Bryan Frimin --- pkg/soagen/generator.go | 34 ++++++++++++++++++++++++++-------- pkg/soagen/header.go | 9 +++++++-- pkg/soagen/styles.go | 10 ++++++++-- 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/pkg/soagen/generator.go b/pkg/soagen/generator.go index f01b542b6..67041ab56 100644 --- a/pkg/soagen/generator.go +++ b/pkg/soagen/generator.go @@ -26,8 +26,14 @@ func GenerateSOAExcel(data SOAData) ([]byte, error) { defer f.Close() sheetName := "State of Applicability" - f.NewSheet(sheetName) - f.DeleteSheet("Sheet1") + _, err := f.NewSheet(sheetName) + if err != nil { + return nil, fmt.Errorf("cannot create sheet: %w", err) + } + + if err := f.DeleteSheet("Sheet1"); err != nil { + return nil, fmt.Errorf("cannot delete sheet: %w", err) + } if err := setupSOAHeader(f, sheetName); err != nil { return nil, fmt.Errorf("cannot setup Excel header: %w", err) @@ -183,20 +189,26 @@ func processField(f *excelize.File, sheetName string, row int, value interface{} col := config.Columns[0] cellRef := fmt.Sprintf("%s%d", col, row) - f.SetCellValue(sheetName, cellRef, v) + if err := f.SetCellValue(sheetName, cellRef, v); err != nil { + return nil, fmt.Errorf("cannot set cell value: %w", err) + } textStyleID, err := createCellStyle(f, getTextStyle()) if err != nil { return nil, fmt.Errorf("cannot create text style: %w", err) } - f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID) + if err := f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID); err != nil { + return nil, fmt.Errorf("cannot set cell style: %w", err) + } if isFirstRow { width := config.DefaultWidth if len(config.Width) > 0 { width = config.Width[0] } - f.SetColWidth(sheetName, col, col, width) + if err := f.SetColWidth(sheetName, col, col, width); err != nil { + return nil, fmt.Errorf("cannot set column width: %w", err) + } } if config.HasFilter { @@ -226,20 +238,26 @@ func processField(f *excelize.File, sheetName string, row int, value interface{} col := config.Columns[0] cellRef := fmt.Sprintf("%s%d", col, row) - f.SetCellValue(sheetName, cellRef, joinedValue) + if err := f.SetCellValue(sheetName, cellRef, joinedValue); err != nil { + return nil, fmt.Errorf("cannot set cell value: %w", err) + } textStyleID, err := createCellStyle(f, getTextStyle()) if err != nil { return nil, fmt.Errorf("cannot create text style: %w", err) } - f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID) + if err := f.SetCellStyle(sheetName, cellRef, cellRef, textStyleID); err != nil { + return nil, fmt.Errorf("cannot set cell style: %w", err) + } if isFirstRow { width := config.DefaultWidth if len(config.Width) > 0 { width = config.Width[0] } - f.SetColWidth(sheetName, col, col, width) + if err := f.SetColWidth(sheetName, col, col, width); err != nil { + return nil, fmt.Errorf("cannot set column width: %w", err) + } } if config.HasFilter { diff --git a/pkg/soagen/header.go b/pkg/soagen/header.go index beb4c5f41..ea27f895c 100644 --- a/pkg/soagen/header.go +++ b/pkg/soagen/header.go @@ -15,6 +15,7 @@ package soagen import ( + "fmt" "time" "github.com/xuri/excelize/v2" @@ -116,14 +117,18 @@ func applyHeaderLayout(f *excelize.File, sheetName string, layout HeaderLayout, func applyCells(f *excelize.File, sheetName string, cells []HeaderCell, headerStyle, cellStyle int) error { for _, cell := range cells { - f.SetCellValue(sheetName, cell.Cell, cell.Value) + if err := f.SetCellValue(sheetName, cell.Cell, cell.Value); err != nil { + return fmt.Errorf("cannot set cell value: %w", err) + } style := cellStyle if cell.Style == "header" { style = headerStyle } - f.SetCellStyle(sheetName, cell.Cell, cell.Cell, style) + if err := f.SetCellStyle(sheetName, cell.Cell, cell.Cell, style); err != nil { + return fmt.Errorf("cannot set cell style: %w", err) + } } return nil } diff --git a/pkg/soagen/styles.go b/pkg/soagen/styles.go index 42cf519d4..bc341167c 100644 --- a/pkg/soagen/styles.go +++ b/pkg/soagen/styles.go @@ -78,12 +78,18 @@ func applyDataValidation(f *excelize.File, sheetName, col string, row int, valid dv.Sqref = fmt.Sprintf("%s%d:%s1000", col, row, col) // Apply to reasonable range dv.SetDropList(validation) dv.SetError(excelize.DataValidationErrorStyleStop, "Invalid Input", "Please select from the dropdown list.") - return f.AddDataValidation(sheetName, dv) + if err := f.AddDataValidation(sheetName, dv); err != nil { + return fmt.Errorf("cannot add data validation: %w", err) + } + + return nil } func setColumnWidth(f *excelize.File, sheetName, col string, width float64) error { if width > 0 { - f.SetColWidth(sheetName, col, col, width) + if err := f.SetColWidth(sheetName, col, col, width); err != nil { + return fmt.Errorf("cannot set column width: %w", err) + } } return nil }