|
|
package sqlite
import ( "context"
"git.aiterp.net/lucifer/lucifer/models" )
type bridgeRepository struct{}
// BridgeRepository is a sqlite datbase repository for the Bridge model.
var BridgeRepository = &bridgeRepository{}
func (b *bridgeRepository) FindByID(ctx context.Context, id int) (models.Bridge, error) { bridge := models.Bridge{} err := db.GetContext(ctx, &bridge, "SELECT * FROM bridge WHERE id=?", id)
return bridge, err }
func (b *bridgeRepository) List(ctx context.Context) ([]models.Bridge, error) { bridges := make([]models.Bridge, 0, 64) err := db.SelectContext(ctx, &bridges, "SELECT * FROM bridge")
return bridges, err }
func (b *bridgeRepository) ListByDriver(ctx context.Context, driver string) ([]models.Bridge, error) { bridges := make([]models.Bridge, 0, 64) err := db.SelectContext(ctx, &bridges, "SELECT * FROM bridge WHERE driver=?", driver)
return bridges, err }
func (b *bridgeRepository) Insert(ctx context.Context, bridge models.Bridge) (models.Bridge, error) { res, err := db.NamedExecContext(ctx, "INSERT INTO bridge (name, internal_id, driver, addr, key) VALUES(:name, :internal_id, :driver, :addr, :key)", bridge) if err != nil { return models.Bridge{}, err }
id, err := res.LastInsertId() if err != nil { return models.Bridge{}, err }
bridge.ID = int(id) return bridge, nil }
func (b *bridgeRepository) Update(ctx context.Context, bridge models.Bridge) error { _, err := db.NamedExecContext(ctx, "UPDATE bridge SET name=:name, addr=:addr, key=:key WHERE id=:id", bridge) return err }
func (b *bridgeRepository) Remove(ctx context.Context, bridge models.Bridge) error { _, err := db.NamedExecContext(ctx, "DELETE FROM bridge WHERE id=:id", bridge) return err }
|