package music import ( "fmt" "github.com/jmoiron/sqlx" ) type Track struct { Number int `json:"number"` Title string `json:"title"` Description string `json:"description"` Lyrics string `json:"lyrics"` PreviewURL string `json:"previewURL"` } // 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 }