diff --git a/system/adapter/adapter.go b/system/adapter/adapter.go index bc4f194..71bedce 100644 --- a/system/adapter/adapter.go +++ b/system/adapter/adapter.go @@ -1,6 +1,21 @@ package adapter +type Capabilities []Capability + type Capability struct { ID string Name string } + +func (caps *Capabilities) IsCapableOf(capability string) bool { + var can bool = false + + for _, capb := range *caps { + if capb.ID == capability { + can = true + break + } + } + + return can +} diff --git a/system/all/all.go b/system/all/all.go index 27ecdab..159e226 100644 --- a/system/all/all.go +++ b/system/all/all.go @@ -35,7 +35,7 @@ func (sys *System) SetLogger(logger *zap.SugaredLogger) { sys.logger = logger } -func (sys *System) GetCapabilities() []adapter.Capability { +func (sys *System) GetCapabilities() adapter.Capabilities { var caps []adapter.Capability return caps diff --git a/system/discourse/discourse.go b/system/discourse/discourse.go index 519ee83..6f86450 100644 --- a/system/discourse/discourse.go +++ b/system/discourse/discourse.go @@ -46,7 +46,7 @@ func (sys *System) SetLogger(logger *zap.SugaredLogger) { sys.logger = logger } -func (sys *System) GetCapabilities() []adapter.Capability { +func (sys *System) GetCapabilities() adapter.Capabilities { var caps []adapter.Capability caps = append(caps, diff --git a/system/hackernews/hackernews.go b/system/hackernews/hackernews.go index 6182bea..293955a 100644 --- a/system/hackernews/hackernews.go +++ b/system/hackernews/hackernews.go @@ -44,7 +44,7 @@ func (sys *System) SetLogger(logger *zap.SugaredLogger) { sys.logger = logger } -func (sys *System) GetCapabilities() []adapter.Capability { +func (sys *System) GetCapabilities() adapter.Capabilities { var caps []adapter.Capability caps = append(caps, diff --git a/system/lemmy/lemmy.go b/system/lemmy/lemmy.go index d7d6e95..099952d 100644 --- a/system/lemmy/lemmy.go +++ b/system/lemmy/lemmy.go @@ -45,7 +45,7 @@ func (sys *System) SetLogger(logger *zap.SugaredLogger) { sys.logger = logger } -func (sys *System) GetCapabilities() []adapter.Capability { +func (sys *System) GetCapabilities() adapter.Capabilities { var caps []adapter.Capability caps = append(caps, diff --git a/system/system.go b/system/system.go index 91478d7..5e0ae28 100644 --- a/system/system.go +++ b/system/system.go @@ -19,7 +19,7 @@ type System interface { GetConfig() map[string]interface{} SetConfig(cfg *map[string]interface{}) SetLogger(logger *zap.SugaredLogger) - GetCapabilities() []adapter.Capability + GetCapabilities() adapter.Capabilities FilterValue() string Title() string