lots of post-DB cleanup

This commit is contained in:
ari melody 2024-09-02 00:15:23 +01:00
parent 965d6f5c3e
commit c9d950d2b2
Signed by: ari
GPG key ID: CF99829C92678188
23 changed files with 412 additions and 550 deletions

View file

@ -29,14 +29,14 @@ func GetAllArtists(db *sqlx.DB) ([]*model.Artist, error) {
return artists, nil
}
func GetArtistsNotOnRelease(db *sqlx.DB, release *model.Release) ([]*model.Artist, error) {
func GetArtistsNotOnRelease(db *sqlx.DB, releaseID string) ([]*model.Artist, error) {
var artists = []*model.Artist{}
err := db.Select(&artists,
"SELECT * FROM artist "+
"WHERE id NOT IN "+
"(SELECT artist FROM musiccredit WHERE release=$1)",
release.ID)
releaseID)
if err != nil {
return nil, err
}
@ -44,6 +44,33 @@ func GetArtistsNotOnRelease(db *sqlx.DB, release *model.Release) ([]*model.Artis
return artists, nil
}
func GetArtistCredits(db *sqlx.DB, artistID string) ([]*model.Credit, error) {
type DBCredit struct {
Release string
Artist string
Role string
Primary bool `db:"is_primary"`
}
var dbCredits []DBCredit
err := db.Select(&dbCredits, "SELECT * FROM musiccredit WHERE artist=$1", artistID)
if err != nil {
return nil, err
}
var credits []*model.Credit
for _, credit := range dbCredits {
credits = append(credits, &model.Credit{
Release: model.Release{ ID: credit.Release },
Artist: model.Artist{ ID: credit.Artist },
Role: credit.Role,
Primary: credit.Primary,
})
}
return credits, nil
}
func CreateArtist(db *sqlx.DB, artist *model.Artist) error {
_, err := db.Exec(
"INSERT INTO artist (id, name, website, avatar) "+