songs.go 520 B

12345678910111213141516171819202122232425262728293031323334
  1. package repository
  2. import (
  3. "errors"
  4. "github.com/felamaslen/go-music-player/pkg/read"
  5. "github.com/jmoiron/sqlx"
  6. )
  7. func SelectSong(db *sqlx.DB, id int) (song *read.Song, err error) {
  8. var songs []*read.Song
  9. err = db.Select(&songs, `
  10. select
  11. track_number
  12. ,title
  13. ,artist
  14. ,album
  15. ,duration
  16. ,modified_date
  17. ,base_path
  18. ,relative_path
  19. from songs
  20. where id = $1
  21. `, int64(id))
  22. if len(songs) == 0 {
  23. err = errors.New("No such ID")
  24. } else {
  25. song = songs[0]
  26. }
  27. return
  28. }