diff options
Diffstat (limited to 'ideas/interface.go')
| -rw-r--r-- | ideas/interface.go | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/ideas/interface.go b/ideas/interface.go deleted file mode 100644 index 3189a5b..0000000 --- a/ideas/interface.go +++ /dev/null @@ -1,95 +0,0 @@ -package repolist - -// attempt to make a golang 'interface' for a 'view' of git repos - -import ( - "context" - "errors" - "fmt" - - "go.wit.com/lib/protobuf/virtbuf" -) - -// ViewRepoManager is a concrete implementation of the RepoManager interface. -type ViewRepoManager struct { - // client represents a hypothetical API client for interacting with the cloud. - client ViewAPIClient -} - -// ViewAPIClient defines the methods required from the API client. -// This is useful if you want to mock this client for testing. -type ViewAPIClient interface { - GetRepoByName(ctx context.Context, name string) (*virtbuf.Cluster, error) - StartRepo(ctx context.Context, clusterID string) error - StopRepo(ctx context.Context, clusterID string) error - ListRepos(ctx context.Context) ([]*virtbuf.Cluster, error) - GetRepoStatus(ctx context.Context, clusterID string) (string, error) -} - -// NewViewRepoManager creates a new ViewRepoManager with the provided API client. -func NewViewRepoManager(client ViewAPIClient) *ViewRepoManager { - return &ViewRepoManager{client: client} -} - -// FindByName retrieves a cluster by name. -func (m *ViewRepoManager) FindByName(ctx context.Context, name string) (*virtbuf.Cluster, error) { - cluster, err := m.client.GetRepoByName(ctx, name) - if err != nil { - return nil, fmt.Errorf("error finding cluster by name %q: %w", name, err) - } - return cluster, nil -} - -// Start initiates the startup process for the specified cluster. -func (m *ViewRepoManager) Start(ctx context.Context, cluster *virtbuf.Cluster) error { - if cluster == nil { - return errors.New("cluster cannot be nil") - } - /* - err := m.client.StartRepo(ctx, cluster.Id) - if err != nil { - return fmt.Errorf("error starting cluster %q: %w", cluster.Id, err) - } - */ - return nil -} - -// Stop halts the specified cluster. -func (m *ViewRepoManager) Stop(ctx context.Context, cluster *virtbuf.Cluster) error { - if cluster == nil { - return errors.New("cluster cannot be nil") - } - /* - err := m.client.StopRepo(ctx, cluster.Id) - if err != nil { - return fmt.Errorf("error stopping cluster %q: %w", cluster.Id, err) - } - */ - return nil -} - -// List retrieves all available clusters. -func (m *ViewRepoManager) List(ctx context.Context) ([]*virtbuf.Cluster, error) { - /* - clusters, err := m.client.ListRepos(ctx) - if err != nil { - return nil, fmt.Errorf("error listing clusters: %w", err) - } - return clusters, nil - */ - return nil, errors.New("List not done yet") -} - -// Status checks the current status of a specified cluster. -func (m *ViewRepoManager) Status(ctx context.Context, cluster *virtbuf.Cluster) (string, error) { - if cluster == nil { - return "", errors.New("cluster cannot be nil") - } - /* - status, err := m.client.GetRepoStatus(ctx, cluster.Id) - if err != nil { - return "", fmt.Errorf("error getting status of cluster %q: %w", cluster.Id, err) - } - */ - return "", nil -} |
