package query import ( "context" "queryorchestration/internal/database" "queryorchestration/internal/database/repository" queryprocessor "queryorchestration/internal/queryProcessor" ) type ListFilters struct { Types []queryprocessor.Type } func (s *Service) List(ctx context.Context, filters ListFilters) ([]*Query, error) { // TODO - use filters dbQueries, err := s.db.Queries.ListQueries(ctx) if err != nil { return nil, err } queries := make([]*Query, len(dbQueries)) for index, query := range dbQueries { q, err := ParseDBListQuery(&query) if err != nil { return nil, err } queries[index] = q } return queries, nil } func ParseDBListQuery(q *repository.ListQueriesRow) (*Query, error) { reqQueryIDs := database.MustToUUIDArray(q.Requiredids) qType, err := queryprocessor.ParseDBType(q.Type) if err != nil { return nil, err } return &Query{ ID: database.MustToUUID(q.ID), ActiveVersion: q.Activeversion, LatestVersion: q.Latestversion, Type: qType, RequiredQueryIDs: reqQueryIDs, Config: string(q.Config), }, nil }