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:
52
pkg/client/saved_searches.go
Normal file
52
pkg/client/saved_searches.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user