518927c395
Query Update * baselineupdate * baseupdateplusmodelupdates * passtests * somemoresubmittesting * testinnerfunctions * readmeandinstall * cleanerstartup * readmeplusdeps * tidyatrighttime * validatetests * normalizedontvalidate * abitofzenormalizationcleanup * addunitstestforhelperfuns * normalizeactiveversiontestas
95 lines
1.4 KiB
Go
95 lines
1.4 KiB
Go
package database
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/jackc/pgx/v5/pgtype"
|
|
)
|
|
|
|
func MustToDBUUIDArray(ids []uuid.UUID) []pgtype.UUID {
|
|
dbid, err := ToDBUUIDArray(ids)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
return dbid
|
|
}
|
|
|
|
func ToDBUUIDArray(ids []uuid.UUID) ([]pgtype.UUID, error) {
|
|
dbIDs := []pgtype.UUID{}
|
|
for _, id := range ids {
|
|
uid, err := ToDBUUID(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if uid.Valid {
|
|
dbIDs = append(dbIDs, uid)
|
|
}
|
|
}
|
|
|
|
return dbIDs, nil
|
|
}
|
|
|
|
func MustToDBUUID(id uuid.UUID) pgtype.UUID {
|
|
dbid, err := ToDBUUID(id)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
return dbid
|
|
}
|
|
|
|
func ToDBUUID(id uuid.UUID) (pgtype.UUID, error) {
|
|
var dbID pgtype.UUID
|
|
err := dbID.Scan(id.String())
|
|
if err != nil {
|
|
return dbID, err
|
|
}
|
|
|
|
if id == uuid.Nil {
|
|
dbID.Valid = false
|
|
}
|
|
|
|
return dbID, nil
|
|
}
|
|
|
|
func MustToUUID(dbid pgtype.UUID) uuid.UUID {
|
|
id, err := ToUUID(dbid)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
return id
|
|
}
|
|
|
|
func ToUUID(id pgtype.UUID) (uuid.UUID, error) {
|
|
return uuid.FromBytes(id.Bytes[:])
|
|
}
|
|
|
|
func MustToUUIDArray(dbids []pgtype.UUID) []uuid.UUID {
|
|
ids, err := ToUUIDArray(dbids)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
return ids
|
|
}
|
|
|
|
func ToUUIDArray(dbIDs []pgtype.UUID) ([]uuid.UUID, error) {
|
|
ids := []uuid.UUID{}
|
|
for _, id := range dbIDs {
|
|
uid, err := ToUUID(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if uid != uuid.Nil {
|
|
ids = append(ids, uid)
|
|
}
|
|
}
|
|
|
|
return ids, nil
|
|
}
|