`` go get -u ./... go mod tidy ``` Fixed SQLite related code to fit latest changes in SQLite driver
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
// Code generated by BobGen sqlite v0.41.1. DO NOT EDIT.
|
|
// This file is meant to be re-generated in place and/or deleted at any time.
|
|
|
|
package models
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/stephenafamo/bob"
|
|
"github.com/stephenafamo/bob/dialect/sqlite/dialect"
|
|
"github.com/stephenafamo/bob/orm"
|
|
)
|
|
|
|
var Preload = getPreloaders()
|
|
|
|
type preloaders struct{}
|
|
|
|
func getPreloaders() preloaders {
|
|
return preloaders{}
|
|
}
|
|
|
|
var (
|
|
SelectThenLoad = getThenLoaders[*dialect.SelectQuery]()
|
|
InsertThenLoad = getThenLoaders[*dialect.InsertQuery]()
|
|
UpdateThenLoad = getThenLoaders[*dialect.UpdateQuery]()
|
|
)
|
|
|
|
type thenLoaders[Q orm.Loadable] struct{}
|
|
|
|
func getThenLoaders[Q orm.Loadable]() thenLoaders[Q] {
|
|
return thenLoaders[Q]{}
|
|
}
|
|
|
|
func thenLoadBuilder[Q orm.Loadable, T any](name string, f func(context.Context, bob.Executor, T, ...bob.Mod[*dialect.SelectQuery]) error) func(...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q] {
|
|
return func(queryMods ...bob.Mod[*dialect.SelectQuery]) orm.Loader[Q] {
|
|
return func(ctx context.Context, exec bob.Executor, retrieved any) error {
|
|
loader, isLoader := retrieved.(T)
|
|
if !isLoader {
|
|
return fmt.Errorf("object %T cannot load %q", retrieved, name)
|
|
}
|
|
|
|
err := f(ctx, exec, loader, queryMods...)
|
|
|
|
// Don't cause an issue due to missing relationships
|
|
if errors.Is(err, sql.ErrNoRows) {
|
|
return nil
|
|
}
|
|
|
|
return err
|
|
}
|
|
}
|
|
}
|