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 }