Files
query-orchestration/internal/query/database.go
T
Michael McGuinness 0ac156f0e1 firstroundgetquery
2025-01-07 13:38:38 +00:00

56 lines
1.4 KiB
Go

package query
import (
"fmt"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
)
func ParseDBQueryRow(dbQuery *repository.GetCollectorQueriesRow) (*QueryRow, error) {
t, err := ParseDBNullType(dbQuery.Type)
if err != nil {
return nil, err
}
return &QueryRow{
ID: database.MustToUUID(dbQuery.Queryid),
Type: t,
RequiredQueryID: database.MustToUUID(dbQuery.Requiredqueryid),
Version: dbQuery.Queryversion.Int32,
}, nil
}
func ParseDBNullType(qType repository.NullQuerytype) (Type, error) {
if !qType.Valid {
return TypeJsonExtractor, fmt.Errorf("invalid database query type")
}
return ParseDBType(qType.Querytype)
}
func ParseDBType(qType repository.Querytype) (Type, error) {
switch qType {
case repository.QuerytypeJsonExtractor:
return TypeJsonExtractor, nil
case repository.QuerytypeContextFull:
return TypeContextFull, nil
default:
return TypeJsonExtractor, fmt.Errorf("invalid database query type")
}
}
func ToDBQueryType(t Type) (repository.NullQuerytype, error) {
var dbType repository.Querytype
switch t {
case TypeJsonExtractor:
dbType = repository.QuerytypeJsonExtractor
case TypeContextFull:
dbType = repository.QuerytypeContextFull
default:
return repository.NullQuerytype{}, fmt.Errorf("invalid database query type")
}
return repository.NullQuerytype{Querytype: dbType, Valid: true}, nil
}