Files
go-unifi/unifi/described_feature.go
Mateusz Filipowicz a5955a6358 feat: support checking supported and enabled controller features (#41)
* feat: support checking supported and enabled controller features

* linting
2025-03-02 22:22:18 +01:00

33 lines
746 B
Go

package unifi
import (
"context"
"strings"
)
func (c *client) ListFeatures(ctx context.Context, site string) ([]DescribedFeature, error) {
return c.listDescribedFeature(ctx, site)
}
func (c *client) GetFeature(ctx context.Context, site string, name string) (*DescribedFeature, error) {
features, err := c.ListFeatures(ctx, site)
if err != nil {
return nil, err
}
lowerName := strings.ToLower(name)
for _, f := range features {
if strings.ToLower(f.Name) == lowerName {
return &f, nil
}
}
return nil, ErrNotFound
}
func (c *client) IsFeatureEnabled(ctx context.Context, site string, name string) (bool, error) {
f, err := c.GetFeature(ctx, site, name)
if err != nil {
return false, err
}
return f.FeatureExists, nil
}