firstroundgetquery

This commit is contained in:
Michael McGuinness
2025-01-03 10:35:42 +00:00
parent 382e01052f
commit 0ac156f0e1
6 changed files with 144 additions and 11 deletions
+7 -3
View File
@@ -7,7 +7,7 @@ import (
)
func ParseDBQueryRow(dbQuery *repository.GetCollectorQueriesRow) (*QueryRow, error) {
t, err := ParseDBType(dbQuery.Type)
t, err := ParseDBNullType(dbQuery.Type)
if err != nil {
return nil, err
}
@@ -20,12 +20,16 @@ func ParseDBQueryRow(dbQuery *repository.GetCollectorQueriesRow) (*QueryRow, err
}, nil
}
func ParseDBType(qType repository.NullQuerytype) (Type, error) {
func ParseDBNullType(qType repository.NullQuerytype) (Type, error) {
if !qType.Valid {
return TypeJsonExtractor, fmt.Errorf("invalid database query type")
}
switch qType.Querytype {
return ParseDBType(qType.Querytype)
}
func ParseDBType(qType repository.Querytype) (Type, error) {
switch qType {
case repository.QuerytypeJsonExtractor:
return TypeJsonExtractor, nil
case repository.QuerytypeContextFull:
+24 -1
View File
@@ -2,6 +2,7 @@ package query
import (
"context"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/result"
@@ -27,6 +28,7 @@ type Query struct {
Type Type
RequiredQueryIDs []uuid.UUID
Version int32
Config interface{}
}
type ListFilters struct {
@@ -59,7 +61,28 @@ func New(db *repository.Queries) *Service {
}
func (s *Service) Get(ctx context.Context, id uuid.UUID) (*Query, error) {
return nil, nil
query, err := s.db.GetQuery(ctx, database.MustToDBUUID(id))
if err != nil {
return nil, err
}
queryType, err := ParseDBType(query.Type)
if err != nil {
return nil, err
}
reqIDs := make([]uuid.UUID, len(query.Requiredids))
for index, id := range query.Requiredids {
reqIDs[index] = database.MustToUUID(id)
}
return &Query{
ID: id,
Type: queryType,
Version: query.Activeversion,
RequiredQueryIDs: reqIDs,
Config: string(query.Config),
}, nil
}
func (s *Service) List(ctx context.Context, filters ListFilters) (*[]Query, error) {