goread/db/database.go

32 lines
586 B
Go

package db
import (
"context"
"fmt"
"github.com/jmoiron/sqlx"
)
const (
getAllBooks = `SELECT * from books where deleted = 0`
)
type Catalogue struct {
db *sqlx.DB
}
func OpenCatalogue(dsn string) (*Catalogue, error) {
db, err := sqlx.Open("sqlite3", dsn)
if err != nil {
return nil, fmt.Errorf("failed to open sqlite3 database with dsn: %s, given error: %w", dsn, err)
}
return &Catalogue{db: db}, nil
}
func (c *Catalogue) GetAllBooks(ctx context.Context) ([]Book, error) {
var books []Book
err := c.db.SelectContext(ctx, &books, getAllBooks)
return books, err
}