package music import ( "fmt" "github.com/jmoiron/sqlx" ) type Track struct { number int title string description string lyrics string previewURL string } // GETTERS func (track Track) GetNumber() int { return track.number } func (track Track) GetTitle() string { return track.title } func (track Track) GetDescription() string { return track.description } func (track Track) GetLyrics() string { return track.lyrics } func (track Track) GetPreviewURL() string { return track.previewURL } // SETTERS func (track Track) SetNumber(number int) error { // TODO: update DB track.number = number return nil } func (track Track) SetTitle(title string) error { // TODO: update DB track.title = title return nil } func (track Track) SetDescription(description string) error { // TODO: update DB track.description = description return nil } func (track Track) SetLyrics(lyrics string) error { // TODO: update DB track.lyrics = lyrics return nil } func (track Track) SetPreviewURL(previewURL string) error { // TODO: update DB track.previewURL = previewURL return nil } // DATABASE func PullReleaseTracks(db *sqlx.DB, releaseID string) ([]Track, error) { var tracks = []Track{} track_rows, err := db.Query("SELECT number, title, description, lyrics, preview_url FROM musictracks WHERE release=$1", releaseID) if err != nil { return []Track{}, err } for track_rows.Next() { var track = Track{} err = track_rows.Scan( &track.number, &track.title, &track.description, &track.lyrics, &track.previewURL, ) if err != nil { fmt.Printf("Error while pulling track for release %s: %s\n", releaseID, err) continue } tracks = append(tracks, track) } return tracks, nil }