refactoring everything teehee (i'm so glad this isn't a team project)

Signed-off-by: ari melody <ari@arimelody.me>
This commit is contained in:
ari melody 2024-08-01 01:39:18 +01:00
parent c684f0c7ae
commit 10f5f51e76
17 changed files with 970 additions and 547 deletions

73
api/v1/music/link.go Normal file
View file

@ -0,0 +1,73 @@
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
}