Untitled
unknown
golang
a year ago
1.8 kB
6
Indexable
package api import ( "database/sql" "fmt" "log" "net/http" "os" "github.com/gin-gonic/gin" "github.com/go-sql-driver/mysql" ) var db *sql.DB func SetupDb(){ cfg := mysql.Config{ User: os.Getenv("DBUSER"), Passwd: os.Getenv("DBPASS"), Net: "tcp", Addr: "127.0.0.1:3306", AllowNativePasswords: true, DBName: "go_test", } var err error db, err = sql.Open("mysql", cfg.FormatDSN()) if err != nil { log.Fatal(err) } pingErr := db.Ping() if pingErr != nil { log.Fatal(pingErr) } } type Album struct { ID int64 Title string Artist string Price float32 } // albumsByArtist queries for albums that have the specified artist name. func AlbumsByArtist(c *gin.Context) { // An albums slice to hold data from returned rows. var albums []Album name := c.Query("artist") if name == "" { c.JSON(http.StatusBadRequest, gin.H{"message": "You must provide an artist",}) return } fmt.Printf("Albums found: %v\n", albums) rows, err := db.Query("SELECT * FROM album WHERE artist = ?", name) if err != nil { c.IndentedJSON(http.StatusNotFound, gin.H{"message": "album not found"}) } defer rows.Close() for rows.Next() { var album Album if err := rows.Scan(&album.ID, &album.Title, &album.Artist, &album.Price); err != nil { c.IndentedJSON(http.StatusNotFound, gin.H{"message": "album not found"}) } albums = append(albums, album) } if albums != nil { c.IndentedJSON(http.StatusOK, albums) } else{ c.IndentedJSON(http.StatusNotFound, gin.H{"message": "artist not found",}) } } func Test(){ fmt.Println("goodbye world") }
Editor is loading...
Leave a Comment