mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Plugin settings (#4143)
* Add backend support for plugin settings * Add plugin settings config * Add UI support for plugin settings
This commit is contained in:
50
pkg/plugin/setting.go
Normal file
50
pkg/plugin/setting.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package plugin
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type PluginSettingTypeEnum string
|
||||
|
||||
const (
|
||||
PluginSettingTypeEnumString PluginSettingTypeEnum = "STRING"
|
||||
PluginSettingTypeEnumNumber PluginSettingTypeEnum = "NUMBER"
|
||||
PluginSettingTypeEnumBoolean PluginSettingTypeEnum = "BOOLEAN"
|
||||
)
|
||||
|
||||
var AllPluginSettingTypeEnum = []PluginSettingTypeEnum{
|
||||
PluginSettingTypeEnumString,
|
||||
PluginSettingTypeEnumNumber,
|
||||
PluginSettingTypeEnumBoolean,
|
||||
}
|
||||
|
||||
func (e PluginSettingTypeEnum) IsValid() bool {
|
||||
switch e {
|
||||
case PluginSettingTypeEnumString, PluginSettingTypeEnumNumber, PluginSettingTypeEnumBoolean:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (e PluginSettingTypeEnum) String() string {
|
||||
return string(e)
|
||||
}
|
||||
|
||||
func (e *PluginSettingTypeEnum) UnmarshalGQL(v interface{}) error {
|
||||
str, ok := v.(string)
|
||||
if !ok {
|
||||
return fmt.Errorf("enums must be strings")
|
||||
}
|
||||
|
||||
*e = PluginSettingTypeEnum(str)
|
||||
if !e.IsValid() {
|
||||
return fmt.Errorf("%s is not a valid PluginSettingTypeEnum", str)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e PluginSettingTypeEnum) MarshalGQL(w io.Writer) {
|
||||
fmt.Fprint(w, strconv.Quote(e.String()))
|
||||
}
|
||||
Reference in New Issue
Block a user