use servemux *properly* this time; better error handling for DB gets

This commit is contained in:
ari melody 2025-11-08 15:04:07 +00:00
parent a33e6717e0
commit b7c1d85830
Signed by: ari
GPG key ID: CF99829C92678188
16 changed files with 234 additions and 288 deletions

View file

@ -23,9 +23,7 @@ func GetAccountByID(db *sqlx.DB, id string) (*model.Account, error) {
err := db.Get(&account, "SELECT * FROM account WHERE id=$1", id)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
@ -37,9 +35,7 @@ func GetAccountByUsername(db *sqlx.DB, username string) (*model.Account, error)
err := db.Get(&account, "SELECT * FROM account WHERE username=$1", username)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
@ -51,9 +47,7 @@ func GetAccountByEmail(db *sqlx.DB, email string) (*model.Account, error) {
err := db.Get(&account, "SELECT * FROM account WHERE email=$1", email)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
@ -67,9 +61,7 @@ func GetAccountBySession(db *sqlx.DB, sessionToken string) (*model.Account, erro
err := db.Get(&account, "SELECT account.* FROM account JOIN token ON id=account WHERE token=$1", sessionToken)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}

View file

@ -1,9 +1,10 @@
package controller
import (
"arimelody-web/model"
"arimelody-web/model"
"strings"
"github.com/jmoiron/sqlx"
"github.com/jmoiron/sqlx"
)
// DATABASE
@ -13,6 +14,7 @@ func GetArtist(db *sqlx.DB, id string) (*model.Artist, error) {
err := db.Get(&artist, "SELECT * FROM artist WHERE id=$1", id)
if err != nil {
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}

View file

@ -3,6 +3,7 @@ package controller
import (
"arimelody-web/model"
"database/sql"
"strings"
"github.com/jmoiron/sqlx"
)
@ -22,6 +23,7 @@ func GetBlogPost(db *sqlx.DB, id string) (*model.BlogPost, error) {
id,
)
if err != nil {
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}

View file

@ -16,9 +16,7 @@ func GetInvite(db *sqlx.DB, code string) (*model.Invite, error) {
err := db.Get(&invite, "SELECT * FROM invite WHERE code=$1", code)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
@ -32,7 +30,7 @@ func CreateInvite(db *sqlx.DB, length int, lifetime time.Duration) (*model.Invit
}
code := []byte{}
for i := 0; i < length; i++ {
for range length {
code = append(code, inviteChars[rand.Intn(len(inviteChars) - 1)])
}
invite.Code = string(code)

View file

@ -14,6 +14,7 @@ func GetRelease(db *sqlx.DB, id string, full bool) (*model.Release, error) {
err := db.Get(&release, "SELECT * FROM musicrelease WHERE id=$1", id)
if err != nil {
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
@ -117,9 +118,7 @@ func GetLatestRelease(db *sqlx.DB) (*model.Release, error) {
err := db.Get(&release, "SELECT * FROM musicrelease WHERE visible=true ORDER BY release_date DESC LIMIT 1")
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}

View file

@ -121,9 +121,7 @@ func GetTOTP(db *sqlx.DB, accountID string, name string) (*model.TOTP, error) {
name,
)
if err != nil {
if strings.Contains(err.Error(), "no rows") {
return nil, nil
}
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}

View file

@ -1,9 +1,10 @@
package controller
import (
"arimelody-web/model"
"arimelody-web/model"
"strings"
"github.com/jmoiron/sqlx"
"github.com/jmoiron/sqlx"
)
// DATABASE
@ -11,9 +12,9 @@ import (
func GetTrack(db *sqlx.DB, id string) (*model.Track, error) {
var track = model.Track{}
stmt, _ := db.Preparex("SELECT * FROM musictrack WHERE id=$1")
err := stmt.Get(&track, id)
err := db.Get("SELECT * FROM musictrack WHERE id=$1", id)
if err != nil {
if strings.Contains(err.Error(), "no rows") { return nil, nil }
return nil, err
}
return &track, nil