package music import ( "fmt" "regexp" "strings" "github.com/jmoiron/sqlx" ) type Link struct { Name string `json:"name"` URL string `json:"url"` } // 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 }