65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package music
|
|
|
|
import (
|
|
"arimelody.me/arimelody.me/music/model"
|
|
"github.com/jmoiron/sqlx"
|
|
)
|
|
|
|
// DATABASE
|
|
|
|
func GetReleaseLinks(db *sqlx.DB, release *model.Release) ([]model.Link, error) {
|
|
var links = []model.Link{}
|
|
|
|
err := db.Select(&links, "SELECT name,url FROM musiclink WHERE release=$1", release.ID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return links, nil
|
|
}
|
|
|
|
func CreateLink(db *sqlx.DB, releaseID string, link *model.Link) (error) {
|
|
_, err := db.Exec(
|
|
"INSERT INTO musiclink (release, name, url) "+
|
|
"VALUES ($1, $2, $3)",
|
|
releaseID,
|
|
link.Name,
|
|
link.URL,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func UpdateLink(db *sqlx.DB, releaseID string, link *model.Link) (error) {
|
|
_, err := db.Exec(
|
|
"UPDATE musiclink SET "+
|
|
"name=$2, url=$3 "+
|
|
"WHERE release=$1",
|
|
releaseID,
|
|
link.Name,
|
|
link.URL,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func DeleteLink(db *sqlx.DB, releaseID string, link *model.Link) (error) {
|
|
_, err := db.Exec(
|
|
"DELETE FROM musiclink "+
|
|
"WHERE release=$1, name=$2",
|
|
releaseID,
|
|
link.Name,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|