package controllers import ( "github.com/gin-gonic/gin" "net/http" "database/sql" "water/api/internal/database" "water/api/internal/models" ) func GetSizes(c *gin.Context) { db := database.EstablishDBConnection() defer func(db *sql.DB) { err := db.Close() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) } }(db) rows, err := db.Query("SELECT id, size, unit FROM Sizes") if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } defer func(rows *sql.Rows) { err := rows.Close() if err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } }(rows) var data []models.Size for rows.Next() { var size models.Size if err := rows.Scan(&size.ID, &size.Size, &size.Unit); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) return } data = append(data, size) } c.JSON(http.StatusOK, data) }