Files
query-orchestration/internal/database/parseuuid.go
T
Michael McGuinness 518927c395 Merged in feature/update (pull request #27)
Query Update

* baselineupdate

* baseupdateplusmodelupdates

* passtests

* somemoresubmittesting

* testinnerfunctions

* readmeandinstall

* cleanerstartup

* readmeplusdeps

* tidyatrighttime

* validatetests

* normalizedontvalidate

* abitofzenormalizationcleanup

* addunitstestforhelperfuns

* normalizeactiveversiontestas
2025-01-20 13:31:48 +00:00

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
}