refactor(watchlist): sortEntries, null checks, and beginTx
This commit is contained in:
@@ -1,17 +1,43 @@
|
||||
package database
|
||||
|
||||
import "database/sql"
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func NullStringOr(n sql.NullString, fallback string) string {
|
||||
if n.Valid && n.String != "" {
|
||||
return n.String
|
||||
}
|
||||
return fallback
|
||||
}
|
||||
|
||||
func DisplayTitle(titleEnglish, titleJapanese sql.NullString, titleOriginal string) string {
|
||||
if titleEnglish.Valid && titleEnglish.String != "" {
|
||||
return titleEnglish.String
|
||||
}
|
||||
if titleJapanese.Valid && titleJapanese.String != "" {
|
||||
return titleJapanese.String
|
||||
}
|
||||
return titleOriginal
|
||||
return NullStringOr(titleEnglish, NullStringOr(titleJapanese, titleOriginal))
|
||||
}
|
||||
|
||||
func (r GetUserWatchListRow) DisplayTitle() string {
|
||||
return DisplayTitle(r.TitleEnglish, r.TitleJapanese, r.TitleOriginal)
|
||||
}
|
||||
|
||||
func BoolPtr(b sql.NullBool) *bool {
|
||||
if !b.Valid {
|
||||
return nil
|
||||
}
|
||||
return &b.Bool
|
||||
}
|
||||
|
||||
func BeginTx(ctx context.Context, db *sql.DB) (*Queries, *sql.Tx, error) {
|
||||
if db == nil {
|
||||
return nil, nil, errors.New("database unavailable")
|
||||
}
|
||||
|
||||
tx, err := db.BeginTx(ctx, nil)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to begin transaction: %w", err)
|
||||
}
|
||||
|
||||
return New(tx), tx, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user