Skip to content

Commit

Permalink
Add a few improvements to lib
Browse files Browse the repository at this point in the history
  • Loading branch information
jlgm committed Apr 12, 2018
1 parent 4f8d6bb commit 9929995
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 24 deletions.
45 changes: 21 additions & 24 deletions lib/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ type Podium struct {
httpClient *http.Client
Config *viper.Viper
URL string
User string
Pass string
baseLeaderboard string
localeLeaderboard string
}
Expand Down Expand Up @@ -72,46 +74,49 @@ func NewPodium(config *viper.Viper) *Podium {
httpClient: getHTTPClient(),
Config: config,
URL: config.GetString("podium.url"),
User: config.GetString("podium.user"),
Pass: config.GetString("podium.pass"),
baseLeaderboard: config.GetString("leaderboards.globalLeaderboard"),
localeLeaderboard: config.GetString("leaderboards.localeLeaderboard"),
}
return p
}

func (p *Podium) sendTo(method, url string, payload map[string]interface{}) (int, string, error) {
func (p *Podium) sendTo(method, url string, payload map[string]interface{}) (int, []byte, error) {
payloadJSON, err := json.Marshal(payload)
if err != nil {
return -1, "", err
return -1, nil, err
}

var req *http.Request

if payload != nil {
req, err = http.NewRequest(method, url, bytes.NewBuffer(payloadJSON))
if err != nil {
return -1, "", err
return -1, nil, err
}
} else {
req, err = http.NewRequest(method, url, nil)
if err != nil {
return -1, "", err
return -1, nil, err
}
}
req.Header.Set("Content-Type", "application/json")
req.SetBasicAuth(p.User, p.Pass)

resp, err := p.httpClient.Do(req)
if err != nil {
return -1, "", err
return -1, nil, err
}
defer resp.Body.Close()

body, respErr := ioutil.ReadAll(resp.Body)

if respErr != nil {
return -1, "", respErr
return -1, nil, respErr
}

return resp.StatusCode, string(body), nil
return resp.StatusCode, body, nil
}

func (p *Podium) buildURL(pathname string) string {
Expand Down Expand Up @@ -185,8 +190,7 @@ func (p *Podium) GetTop(leaderboard string, page int, pageSize int) (int, *Membe
}

var members MemberList
b := []byte(body)
err = json.Unmarshal(b, &members)
err = json.Unmarshal(body, &members)

return status, &members, err
}
Expand All @@ -201,8 +205,7 @@ func (p *Podium) GetTopPercent(leaderboard string, percentage int) (int, *Member
}

var members MemberList
b := []byte(body)
err = json.Unmarshal(b, &members)
err = json.Unmarshal(body, &members)

return status, &members, err
}
Expand All @@ -220,8 +223,7 @@ func (p *Podium) UpdateScore(leaderboard string, playerID string, score int) (in
}

var member MemberList
b := []byte(body)
err = json.Unmarshal(b, &member)
err = json.Unmarshal(body, &member)

return status, &member, err
}
Expand All @@ -239,8 +241,7 @@ func (p *Podium) IncrementScore(leaderboard string, playerID string, increment i
}

var member MemberList
b := []byte(body)
err = json.Unmarshal(b, &member)
err = json.Unmarshal(body, &member)

return status, &member, err
}
Expand All @@ -259,8 +260,7 @@ func (p *Podium) UpdateScores(leaderboards []string, playerID string, score int)
}

var scores ScoreList
b := []byte(body)
err = json.Unmarshal(b, &scores)
err = json.Unmarshal(body, &scores)

return status, &scores, err
}
Expand All @@ -275,8 +275,7 @@ func (p *Podium) RemoveMemberFromLeaderboard(leaderboard string, member string)
}

var response Response
b := []byte(body)
err = json.Unmarshal(b, &response)
err = json.Unmarshal(body, &response)

return status, &response, err
}
Expand All @@ -291,8 +290,7 @@ func (p *Podium) GetPlayer(leaderboard string, playerID string) (int, *Member, e
}

var member Member
b := []byte(body)
err = json.Unmarshal(b, &member)
err = json.Unmarshal(body, &member)

return status, &member, err
}
Expand All @@ -301,7 +299,7 @@ func (p *Podium) GetPlayer(leaderboard string, playerID string) (int, *Member, e
func (p *Podium) Healthcheck() (int, string, error) {
route := p.buildHealthcheckURL()
status, body, err := p.sendTo("GET", route, nil)
return status, body, err
return status, string(body), err
}

// DeleteLeaderboard deletes the leaderboard from podium
Expand All @@ -314,8 +312,7 @@ func (p *Podium) DeleteLeaderboard(leaderboard string) (int, *Response, error) {
}

var response Response
b := []byte(body)
err = json.Unmarshal(b, &response)
err = json.Unmarshal(body, &response)

return status, &response, err
}
2 changes: 2 additions & 0 deletions lib/lib_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ var _ = Describe("Lib", func() {
BeforeEach(func() {
//default configs for each test
config.Set("podium.url", "http://podium")
config.Set("podium.user", "user")
config.Set("podium.pass", "pass")
config.Set("leaderboards.globalLeaderboard", "ecg:leaderboard:global")
config.Set("leaderboards.localeLeaderboard", "ecg:leaderboard:%{locale}")
p = lib.NewPodium(config)
Expand Down

0 comments on commit 9929995

Please sign in to comment.