Füge Modelle für Flows, FlowRuns, TaskRuns, WorkPools, WorkQueues, Deployments, Variablen, FlowRunStates, Logs, und Blocks samt zugehöriger Unmarshal-Logik und Zeitfeld-Unterstützung hinzu; ergänze Tests für die FlowRunStates-Service-Methoden.

This commit is contained in:
Gregor Schulte
2026-03-27 14:02:32 +01:00
parent 3aff707116
commit 57531a7d95
36 changed files with 3165 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
package client
import (
"context"
"fmt"
"net/http"
"git.schultes.dev/schultesdev/prefect-go/pkg/models"
"github.com/google/uuid"
)
// SavedSearchesService handles operations related to saved searches.
type SavedSearchesService struct {
client *Client
}
// Create creates a new saved search.
func (s *SavedSearchesService) Create(ctx context.Context, req *models.SavedSearchCreate) (*models.SavedSearch, error) {
var savedSearch models.SavedSearch
if err := s.client.do(ctx, http.MethodPut, "/saved_searches/", req, &savedSearch); err != nil {
return nil, fmt.Errorf("failed to create saved search: %w", err)
}
return &savedSearch, nil
}
// Get retrieves a saved search by ID.
func (s *SavedSearchesService) Get(ctx context.Context, id uuid.UUID) (*models.SavedSearch, error) {
var savedSearch models.SavedSearch
path := joinPath("/saved_searches", id.String())
if err := s.client.get(ctx, path, &savedSearch); err != nil {
return nil, fmt.Errorf("failed to get saved search: %w", err)
}
return &savedSearch, nil
}
// Delete deletes a saved search by ID.
func (s *SavedSearchesService) Delete(ctx context.Context, id uuid.UUID) error {
path := joinPath("/saved_searches", id.String())
if err := s.client.delete(ctx, path); err != nil {
return fmt.Errorf("failed to delete saved search: %w", err)
}
return nil
}
// List retrieves all saved searches.
func (s *SavedSearchesService) List(ctx context.Context) ([]models.SavedSearch, error) {
var savedSearches []models.SavedSearch
if err := s.client.post(ctx, "/saved_searches/filter", nil, &savedSearches); err != nil {
return nil, fmt.Errorf("failed to list saved searches: %w", err)
}
return savedSearches, nil
}