firstroundgetquery
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user