Skip to content

Commit

Permalink
Merge branch 'master' of github.com:smancke/guble into feature/reuse-…
Browse files Browse the repository at this point in the history
…client-connections-for-nexmo
  • Loading branch information
bogh committed Feb 7, 2017
2 parents 9ec6004 + fc36fac commit 790e5a3
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
17 changes: 11 additions & 6 deletions server/sms/nexmo_sms_sender.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@ const (
)

var (
ErrNoSMSSent = errors.New("No sms was sent to Nexmo")
ErrIncompleteSMSSent = errors.New("Nexmo sms was only partial delivered.One or more part returned an error")
ErrNoSMSSent = errors.New("No sms was sent to Nexmo")
ErrIncompleteSMSSent = errors.New("Nexmo sms was only partial delivered.One or more part returned an error")
ErrSMSResponseDecodingFailed = errors.New("Nexmo response decoding failed.")
)

var nexmoResponseCodeMap = map[ResponseCode]string{
Expand Down Expand Up @@ -150,19 +151,23 @@ func (ns *NexmoSender) sendSms(sms *NexmoSms) (*NexmoMessageResponse, error) {

resp, err := (&http.Client{}).Do(req)
if err != nil {
logger.WithField("error", err.Error()).Error("Error doing the request to nexmo endpoint.")
logger.WithField("error", err.Error()).Error("Error doing the request to nexmo endpoint")
ns.createHttpClient()
return nil, err
return nil, ErrNoSMSSent
}
defer resp.Body.Close()

var messageResponse *NexmoMessageResponse
respBody, _ := ioutil.ReadAll(resp.Body)
respBody, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.WithField("error", err.Error()).Error("Error reading the nexmo body response")
return nil, ErrSMSResponseDecodingFailed
}

err = json.Unmarshal(respBody, &messageResponse)
if err != nil {
logger.WithField("error", err.Error()).Error("Error decoding the response from nexmo endpoint")
return nil, err
return nil, ErrSMSResponseDecodingFailed
}
logger.WithField("messageResponse", messageResponse).Debug("Actual nexmo response")

Expand Down
8 changes: 7 additions & 1 deletion server/sms/sms_gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func (g *gateway) Run() {
g.logger.WithField("error", err.Error()).Error("Error returned by gateway proxy loop")

// If Route channel closed, try restarting
if err == connector.ErrRouteChannelClosed || err == ErrNoSMSSent || err == ErrIncompleteSMSSent {
if isRestartableErr(err) {
g.Restart()
return
}
Expand All @@ -138,6 +138,12 @@ func (g *gateway) Run() {
}
}
}
func isRestartableErr(err error) bool {
return err == connector.ErrRouteChannelClosed ||
err == ErrNoSMSSent ||
err == ErrIncompleteSMSSent ||
err == ErrSMSResponseDecodingFailed
}

func (g *gateway) proxyLoop() error {
var (
Expand Down

0 comments on commit 790e5a3

Please sign in to comment.