package main import ( "api-practice/models" "fmt" "github.com/gin-gonic/gin" _ "github.com/lib/pq" "net/http" ) func main() { // API routing gubbins router := gin.Default() router.GET("/albums", getAlbums) router.GET("/album/:id", getAlbumByID) router.POST("/albums", addAlbum) err := router.Run("localhost:8080") if err != nil { panic(err.Error()) } } func getAlbums(c *gin.Context) { albums := models.GetAlbums() if albums == nil || len(albums) == 0 { c.AbortWithStatus(http.StatusNotFound) } else { c.IndentedJSON(http.StatusOK, albums) } } func getAlbumByID(c *gin.Context) { id := c.Param("id") album := models.GetAlbumByID(id) if album == nil { c.AbortWithStatus(http.StatusNotFound) } else { fmt.Println(album) c.IndentedJSON(http.StatusOK, album) } } func addAlbum(c *gin.Context) { var album models.Album if err := c.BindJSON(&album); err != nil { c.AbortWithStatus(http.StatusBadRequest) } else { models.AddAlbum(album) c.IndentedJSON(http.StatusCreated, album) } }