64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package listing
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func (s *Service) reviewRequired(ctx context.Context) (bool, error) {
|
|
if s.config == nil {
|
|
return false, nil
|
|
}
|
|
value, err := s.config.FindValue(ctx, reviewRequiredConfigKey)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
required, err := strconv.ParseBool(strings.TrimSpace(value))
|
|
if err != nil {
|
|
return false, nil
|
|
}
|
|
return required, nil
|
|
}
|
|
|
|
func (s *Service) publishRules(ctx context.Context) (publishRules, error) {
|
|
rules := publishRules{FireLevelMin: defaultFireLevelMin}
|
|
if s.config == nil {
|
|
return rules, nil
|
|
}
|
|
value, err := s.config.FindValue(ctx, publishOptionsConfigKey)
|
|
if err != nil {
|
|
return rules, err
|
|
}
|
|
var raw struct {
|
|
FireLevelMin int `json:"fire_level_min"`
|
|
}
|
|
if err := json.Unmarshal([]byte(value), &raw); err != nil {
|
|
return rules, nil
|
|
}
|
|
if raw.FireLevelMin > 0 {
|
|
rules.FireLevelMin = raw.FireLevelMin
|
|
}
|
|
return rules, nil
|
|
}
|
|
|
|
func (s *Service) publishCooldown(ctx context.Context) (time.Duration, error) {
|
|
if s.config == nil {
|
|
return time.Duration(defaultPublishCooldownMinutes) * time.Minute, nil
|
|
}
|
|
value, err := s.config.FindValue(ctx, publishCooldownMinutesKey)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
minutes, err := strconv.Atoi(strings.TrimSpace(value))
|
|
if err != nil {
|
|
return time.Duration(defaultPublishCooldownMinutes) * time.Minute, nil
|
|
}
|
|
if minutes <= 0 {
|
|
return 0, nil
|
|
}
|
|
return time.Duration(minutes) * time.Minute, nil
|
|
}
|