package music import ( "fmt" "regexp" "strings" "github.com/jmoiron/sqlx" ) type Link struct { name string url string } // GETTERS func (link Link) GetName() string { return link.name } func (link Link) GetURL() string { return link.url } // SETTERS func (link Link) SetName(name string) error { // TODO: update DB link.name = name return nil } func (link Link) SetURL(url string) error { // TODO: update DB link.url = url return nil } // MISC func (link Link) NormaliseName() string { rgx := regexp.MustCompile(`[^a-z0-9]`) return strings.ToLower(rgx.ReplaceAllString(link.name, "")) } // DATABASE func PullReleaseLinks(db *sqlx.DB, releaseID string) ([]Link, error) { var links = []Link{} link_rows, err := db.Query("SELECT name, url FROM musiclinks WHERE release=$1", releaseID); if err != nil { return []Link{}, err } for link_rows.Next() { var link = Link{} err = link_rows.Scan( &link.name, &link.url, ) if err != nil { fmt.Printf("Error while pulling link for release %s: %s\n", releaseID, err) continue } links = append(links, link) } return links, nil }