package query import ( "fmt" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" ) func ParseDBQuery(dbQuery *repository.GetCollectorQueriesRow) (*Query, error) { t, err := ParseDBType(dbQuery.Type) if err != nil { return nil, err } return &Query{ ID: database.MustToUUID(dbQuery.Queryid), Type: t, RequiredQueryID: database.MustToUUID(dbQuery.Requiredqueryid), Version: dbQuery.Queryversion.Int32, }, nil } func ParseDBType(qType repository.NullQuerytype) (Type, error) { if !qType.Valid { return TypeJsonExtractor, fmt.Errorf("invalid database query type") } switch qType.Querytype { 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 }