Skip to content

Commit 008a8be

Browse files
Merge pull request #16 from Comcast/webhook-config-change
Modified how we load acquirer configs
2 parents 4f1f3e6 + c8a6e8c commit 008a8be

File tree

3 files changed

+25
-70
lines changed

3 files changed

+25
-70
lines changed

svalinn.yaml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,9 @@ webhook:
4646
timeout: "1m"
4747
registrationURL: "https://127.0.0.1:6000/hook"
4848
eventsToWatch: ["device-status.*"]
49-
acquirerConfig:
50-
basic:
51-
sat:
52-
client: ""
53-
secret: ""
54-
satURL: ""
55-
timeout: "1m"
49+
basic:
50+
sat:
51+
client: ""
52+
secret: ""
53+
satURL: ""
54+
timeout: "1m"

webhook.go

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
package main
1919

2020
import (
21-
"errors"
2221
"net/http"
2322
"time"
2423

@@ -29,12 +28,6 @@ import (
2928
"github.com/go-kit/kit/log"
3029
)
3130

32-
var (
33-
errParseSat = errors.New("Couldn't parse SAT acquirer config")
34-
errParseBasic = errors.New("Couldn't parse basic acquirer config")
35-
errEmptyBasic = errors.New("Empty basic credentials")
36-
)
37-
3831
type webhookRegisterer interface {
3932
Register(client *http.Client, secret string) error
4033
}
@@ -50,7 +43,8 @@ type WebhookConfig struct {
5043
Timeout time.Duration
5144
RegistrationURL string
5245
EventsToWatch []string
53-
AcquirerConfig map[string]interface{}
46+
Sat webhook.SatAcquirer
47+
Basic string
5448
Secret string
5549
}
5650

@@ -63,11 +57,9 @@ type periodicRegisterer struct {
6357
}
6458

6559
func newPeriodicRegisterer(wc WebhookConfig, secretGetter secretGetter, logger log.Logger) periodicRegisterer {
66-
acquirer, err := determineTokenAcquirer(wc.AcquirerConfig)
67-
if err != nil {
68-
logging.Error(logger, emperror.Context(err)...).Log(logging.MessageKey(), "Failed to parse token acquirer config, using default acquirer",
69-
logging.ErrorKey(), err.Error(), "config", wc.AcquirerConfig)
70-
}
60+
acquirer := determineTokenAcquirer(wc)
61+
logging.Debug(logger).Log(logging.MessageKey(), "determined token acquirer", "acquirer", acquirer,
62+
"config", wc)
7163
webhook := webhook.Webhook{
7264
URL: wc.URL,
7365
RegistrationURL: wc.RegistrationURL,
@@ -84,26 +76,17 @@ func newPeriodicRegisterer(wc WebhookConfig, secretGetter secretGetter, logger l
8476
}
8577

8678
// determineTokenAcquirer always returns a valid TokenAcquirer, but may also return an error
87-
func determineTokenAcquirer(config map[string]interface{}) (webhook.TokenAcquirer, error) {
79+
func determineTokenAcquirer(config WebhookConfig) webhook.TokenAcquirer {
8880
defaultAcquirer := &webhook.DefaultAcquirer{}
89-
if value, ok := config["sat"]; ok {
90-
acquirer, ok := value.(webhook.SatAcquirer)
91-
if !ok {
92-
return defaultAcquirer, errParseSat
93-
}
94-
return &acquirer, nil
81+
if config.Sat.Client != "" && config.Sat.SatURL != "" && config.Sat.Secret != "" && config.Sat.Timeout != time.Duration(0)*time.Second {
82+
return &config.Sat
9583
}
96-
if value, ok := config["basic"]; ok {
97-
str, ok := value.(string)
98-
if !ok {
99-
return defaultAcquirer, errParseBasic
100-
}
101-
if str == "" {
102-
return defaultAcquirer, errEmptyBasic
103-
}
104-
return webhook.NewBasicAcquirer(str), nil
84+
85+
if config.Basic != "" {
86+
return webhook.NewBasicAcquirer(config.Basic)
10587
}
106-
return defaultAcquirer, nil
88+
89+
return defaultAcquirer
10790
}
10891

10992
func (p *periodicRegisterer) registerAtInterval() {

webhook_test.go

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -90,39 +90,20 @@ func TestDetermineTokenAcquirer(t *testing.T) {
9090
}
9191
tests := []struct {
9292
description string
93-
satVal interface{}
94-
basicVal interface{}
93+
satVal webhook.SatAcquirer
94+
basicVal string
9595
expectedTokenAcquirer webhook.TokenAcquirer
96-
expectedErr error
9796
}{
9897
{
9998
description: "Sat Success",
10099
satVal: goodSatAcquirer,
101100
expectedTokenAcquirer: &goodSatAcquirer,
102101
},
103-
{
104-
description: "Sat Error",
105-
satVal: "",
106-
expectedTokenAcquirer: defaultAcquirer,
107-
expectedErr: errParseSat,
108-
},
109102
{
110103
description: "Basic Success",
111104
basicVal: "test basic",
112105
expectedTokenAcquirer: goodBasicAcquirer,
113106
},
114-
{
115-
description: "Basic Parse Error",
116-
basicVal: goodSatAcquirer,
117-
expectedTokenAcquirer: defaultAcquirer,
118-
expectedErr: errParseBasic,
119-
},
120-
{
121-
description: "Basic Empty Creds Error",
122-
basicVal: "",
123-
expectedTokenAcquirer: defaultAcquirer,
124-
expectedErr: errEmptyBasic,
125-
},
126107
{
127108
description: "Default Success",
128109
expectedTokenAcquirer: defaultAcquirer,
@@ -132,19 +113,11 @@ func TestDetermineTokenAcquirer(t *testing.T) {
132113
for _, tc := range tests {
133114
t.Run(tc.description, func(t *testing.T) {
134115
assert := assert.New(t)
135-
config := make(map[string]interface{})
136-
if tc.satVal != nil {
137-
config["sat"] = tc.satVal
138-
}
139-
if tc.basicVal != nil {
140-
config["basic"] = tc.basicVal
141-
}
142-
tokenAcquirer, err := determineTokenAcquirer(config)
143-
if tc.expectedErr == nil || err == nil {
144-
assert.Equal(tc.expectedErr, err)
145-
} else {
146-
assert.Contains(err.Error(), tc.expectedErr.Error())
116+
config := WebhookConfig{
117+
Sat: tc.satVal,
118+
Basic: tc.basicVal,
147119
}
120+
tokenAcquirer := determineTokenAcquirer(config)
148121
assert.Equal(tc.expectedTokenAcquirer, tokenAcquirer)
149122
})
150123
}

0 commit comments

Comments
 (0)