Files
query-orchestration/internal/query/database.go
T

52 lines
1.3 KiB
Go
Raw Normal View History

2024-12-20 17:35:33 +00:00
package query
import (
2024-12-24 12:47:40 +00:00
"fmt"
2024-12-24 17:13:48 +00:00
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
2024-12-20 17:35:33 +00:00
)
func ParseDBQuery(dbQuery *repository.GetCollectorQueriesRow) (*Query, error) {
2024-12-24 12:47:40 +00:00
t, err := ParseDBType(dbQuery.Type)
if err != nil {
return nil, err
}
2024-12-20 17:35:33 +00:00
return &Query{
ID: database.MustToUUID(dbQuery.Queryid),
2024-12-24 12:47:40 +00:00
Type: t,
2024-12-20 17:35:33 +00:00
RequiredQueryID: database.MustToUUID(dbQuery.Requiredqueryid),
Version: dbQuery.Queryversion.Int32,
}, nil
}
2024-12-24 12:47:40 +00:00
func ParseDBType(qType repository.NullQuerytype) (Type, error) {
if !qType.Valid {
return TypeJsonExtractor, fmt.Errorf("invalid database query type")
}
switch qType.Querytype {
2024-12-20 17:35:33 +00:00
case repository.QuerytypeJsonExtractor:
2024-12-24 12:47:40 +00:00
return TypeJsonExtractor, nil
2024-12-24 17:13:48 +00:00
case repository.QuerytypeContextFull:
return TypeContextFull, nil
2024-12-20 17:35:33 +00:00
default:
2024-12-24 12:47:40 +00:00
return TypeJsonExtractor, fmt.Errorf("invalid database query type")
2024-12-20 17:35:33 +00:00
}
}
2024-12-24 12:47:40 +00:00
func ToDBQueryType(t Type) (repository.NullQuerytype, error) {
2024-12-20 17:35:33 +00:00
var dbType repository.Querytype
switch t {
2024-12-24 12:47:40 +00:00
case TypeJsonExtractor:
2024-12-20 17:35:33 +00:00
dbType = repository.QuerytypeJsonExtractor
2024-12-24 17:13:48 +00:00
case TypeContextFull:
dbType = repository.QuerytypeContextFull
2024-12-20 17:35:33 +00:00
default:
2024-12-24 12:47:40 +00:00
return repository.NullQuerytype{}, fmt.Errorf("invalid database query type")
2024-12-20 17:35:33 +00:00
}
2024-12-24 12:47:40 +00:00
return repository.NullQuerytype{Querytype: dbType, Valid: true}, nil
2024-12-20 17:35:33 +00:00
}