nidus-sync/db/query/public/feature.go

38 lines
1.2 KiB
Go

package public
import (
"context"
"fmt"
"github.com/Gleipnir-Technology/nidus-sync/db"
"github.com/Gleipnir-Technology/nidus-sync/db/gen/nidus-sync/public/model"
"github.com/Gleipnir-Technology/nidus-sync/db/gen/nidus-sync/public/table"
"github.com/go-jet/jet/v2/postgres"
)
func FeaturesFromSiteID(ctx context.Context, txn db.Ex, site_id int64) ([]model.Feature, error) {
statement := table.Feature.SELECT(
table.Feature.AllColumns,
).FROM(table.Feature).
WHERE(table.Feature.SiteID.EQ(postgres.Int(site_id)))
result, err := db.ExecuteManyTx[model.Feature](ctx, txn, statement)
if err != nil {
return []model.Feature{}, fmt.Errorf("query: %w", err)
}
return result, nil
}
func FeaturesFromSiteIDs(ctx context.Context, txn db.Ex, site_ids []int64) ([]model.Feature, error) {
sql_ids := make([]postgres.Expression, len(site_ids))
for i, site_id := range site_ids {
sql_ids[i] = postgres.Int(site_id)
}
statement := table.Feature.SELECT(
table.Feature.AllColumns,
).FROM(table.Feature).
WHERE(table.Feature.SiteID.IN(sql_ids...))
result, err := db.ExecuteManyTx[model.Feature](ctx, txn, statement)
if err != nil {
return []model.Feature{}, fmt.Errorf("query: %w", err)
}
return result, nil
}