package music import ( "fmt" "arimelody.me/arimelody.me/global" "arimelody.me/arimelody.me/music/model" "github.com/jmoiron/sqlx" ) // DATABASE func PullAllReleases(db *sqlx.DB) ([]*model.Release, error) { var release_rows = []*model.Release{} var releases = []*model.Release{} err := db.Select(&release_rows, "SELECT * FROM musicrelease ORDER BY release_date DESC") if err != nil { return nil, err } for _, release := range release_rows { release.Credits, err = PullReleaseCredits(global.DB, release.ID) if err != nil { fmt.Printf("Error pulling credits for %s: %s\n", release.ID, err) } release.Links, _ = PullReleaseLinks(global.DB, release.ID) if err != nil { fmt.Printf("Error pulling links for %s: %s\n", release.ID, err) } release.Tracks = make([]*model.Track, 0) releases = append(releases, release) } return releases, nil } func CreateReleaseDB(db *sqlx.DB, release *model.Release) error { _, err := db.Exec( "INSERT INTO musicrelease "+ "(id, visible, title, description, type, release_date, artwork, buyname, buylink) "+ "VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)", release.ID, release.Visible, release.Title, release.Description, release.ReleaseType, release.ReleaseDate.Format("2-Jan-2006"), release.Artwork, release.Buyname, release.Buylink, ) if err != nil { return err } return nil } func UpdateReleaseDB(db *sqlx.DB, release *model.Release) error { _, err := db.Exec( "UPDATE musicrelease SET "+ "title=$2, description=$3, type=$4, release_date=$5, artwork=$6, buyname=$7, buylink=$8) "+ "VALUES ($2, $3, $4, $5, $6, $7, $8) "+ "WHERE id=$1", release.ID, release.Title, release.Description, release.ReleaseType, release.ReleaseDate.Format("2-Jan-2006"), release.Artwork, release.Buyname, release.Buylink, ) if err != nil { return err } return nil } func DeleteReleaseDB(db *sqlx.DB, release model.Release) error { _, err := db.Exec( "DELETE FROM musicrelease "+ "WHERE id=$1", release.ID, ) if err != nil { return err } return nil }