77 lines
1.8 KiB
Go
77 lines
1.8 KiB
Go
|
package music
|
||
|
|
||
|
import (
|
||
|
"arimelody.me/arimelody.me/music/model"
|
||
|
"github.com/jmoiron/sqlx"
|
||
|
)
|
||
|
|
||
|
// DATABASE
|
||
|
|
||
|
func PullAllReleases(db *sqlx.DB) ([]model.Release, error) {
|
||
|
var releases = []model.Release{}
|
||
|
|
||
|
err := db.Select(&releases, "SELECT * FROM musicrelease ORDER BY release_date DESC")
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return releases, nil
|
||
|
}
|
||
|
|
||
|
func CreateReleaseDB(db *sqlx.DB, release *model.Release) error {
|
||
|
_, err := db.Exec(
|
||
|
"INSERT INTO musicrelease "+
|
||
|
"(id, visible, title, description, type, release_date, artwork, buyname, buylink) "+
|
||
|
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)",
|
||
|
release.ID,
|
||
|
release.Visible,
|
||
|
release.Title,
|
||
|
release.Description,
|
||
|
release.ReleaseType,
|
||
|
release.ReleaseDate.Format("2-Jan-2006"),
|
||
|
release.Artwork,
|
||
|
release.Buyname,
|
||
|
release.Buylink,
|
||
|
)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func UpdateReleaseDB(db *sqlx.DB, release *model.Release) error {
|
||
|
_, err := db.Exec(
|
||
|
"UPDATE musicrelease SET "+
|
||
|
"title=$2, description=$3, type=$4, release_date=$5, artwork=$6, buyname=$7, buylink=$8) "+
|
||
|
"VALUES ($2, $3, $4, $5, $6, $7, $8) "+
|
||
|
"WHERE id=$1",
|
||
|
release.ID,
|
||
|
release.Title,
|
||
|
release.Description,
|
||
|
release.ReleaseType,
|
||
|
release.ReleaseDate.Format("2-Jan-2006"),
|
||
|
release.Artwork,
|
||
|
release.Buyname,
|
||
|
release.Buylink,
|
||
|
)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func DeleteReleaseDB(db *sqlx.DB, release model.Release) error {
|
||
|
_, err := db.Exec(
|
||
|
"DELETE FROM musicrelease "+
|
||
|
"WHERE id=$1",
|
||
|
release.ID,
|
||
|
)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return nil
|
||
|
}
|