database

package
v0.0.0-...-750dbe4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrItemNotFound = errors.New("database: item not found")

Functions

func RunMigrateUp

func RunMigrateUp(db *Database) error

Types

type Album

type Album struct {
	Id       string
	ArtistId string
	Name     string
	CoverArt sql.NullString
}

type Artist

type Artist struct {
	Id      string         `json:"id"`
	Name    string         `json:"name"`
	Picture sql.NullString `json:"picture"`
}

type Connection

type Connection interface {
	Query(query string, args ...any) (*sql.Rows, error)
	QueryRow(query string, args ...any) *sql.Row
	Exec(query string, args ...any) (sql.Result, error)
}

type CreateAlbumParams

type CreateAlbumParams struct {
	ArtistId string
	Name     string
	CoverArt sql.NullString
}

type CreateArtistParams

type CreateArtistParams struct {
	Name    string
	Picture sql.NullString
}

type CreateTrackParams

type CreateTrackParams struct {
	AlbumId  string
	ArtistId string

	Title string

	CoverArt sql.NullString

	TrackNumber sql.NullInt64
	Duration    sql.NullInt64
	Year        sql.NullInt64

	OriginalFile   string
	TranscodedFile string
}

type Database

type Database struct {
	RawConn *sql.DB
	Conn    Connection
}

func New

func New(conn *sql.DB) *Database

func Open

func Open(workDir types.WorkDir) (*Database, error)

func (*Database) Begin

func (db *Database) Begin() (*Database, *sql.Tx, error)

func (*Database) CreateAlbum

func (db *Database) CreateAlbum(ctx context.Context, params CreateAlbumParams) (Album, error)

func (*Database) CreateArtist

func (db *Database) CreateArtist(ctx context.Context, params CreateArtistParams) (Artist, error)

func (*Database) CreateTrack

func (db *Database) CreateTrack(ctx context.Context, params CreateTrackParams) (Track, error)

func (*Database) Exec

func (db *Database) Exec(ctx context.Context, s ToSQL) (sql.Result, error)

func (*Database) GetArtistById

func (db *Database) GetArtistById(ctx context.Context, id string) (Artist, error)

func (*Database) GetArtistByName

func (db *Database) GetArtistByName(ctx context.Context, name string) (Artist, error)

func (*Database) Query

func (db *Database) Query(ctx context.Context, s ToSQL) (*sql.Rows, error)

func (*Database) QueryRow

func (db *Database) QueryRow(ctx context.Context, s ToSQL) (*sql.Row, error)

type ToSQL

type ToSQL interface {
	ToSQL() (string, []interface{}, error)
}

type Track

type Track struct {
	Id       string
	AlbumId  string
	ArtistId string

	Title string

	CoverArt sql.NullString

	TrackNumber sql.NullInt64
	Duration    sql.NullInt64
	Year        sql.NullInt64

	OriginalFile   string
	TranscodedFile string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL