in go-gin-react/go-gin-react-part2/main.go [162:191]
func listChannels(c *gin.Context, db *sql.DB) {
// Query database for channels
rows, err := db.Query("SELECT id, name FROM channels")
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
// Create slice of channels
var channels []Channel
// Iterate over rows
for rows.Next() {
// Create new channel
var channel Channel
// Scan row into channel
err := rows.Scan(&channel.ID, &channel.Name)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
// Append channel to slice
channels = append(channels, channel)
}
// Return slice of channels
c.JSON(http.StatusOK, channels)
}