leaderboards: ListEntries/SubmitEntry/UpdateEntry/DeleteEntry against /entries
CI / build (push) Successful in 50s
CI / build (push) Successful in 50s
This commit is contained in:
@@ -39,7 +39,7 @@ if err != nil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
players, err := client.Players.List(ctx, rudder.ListPlayersParameters{Limit: 100})
|
players, err := client.Players.List(ctx, rudder.ListPlayersParameters{Limit: 100})
|
||||||
entries, err := client.Leaderboards.Results(ctx, "weekly")
|
entries, err := client.Leaderboards.ListEntries(ctx, "weekly")
|
||||||
wallet, err := client.Wallet.Adjust(ctx, playerID, rudder.AdjustWalletParameters{
|
wallet, err := client.Wallet.Adjust(ctx, playerID, rudder.AdjustWalletParameters{
|
||||||
CurrencyCode: "coins",
|
CurrencyCode: "coins",
|
||||||
Amount: 100,
|
Amount: 100,
|
||||||
|
|||||||
+24
-3
@@ -12,10 +12,31 @@ type LeaderboardsService struct {
|
|||||||
transport *transport
|
transport *transport
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *LeaderboardsService) Results(ctx context.Context, slug string) ([]models.RankEntry, error) {
|
func (s *LeaderboardsService) ListEntries(ctx context.Context, slug string) ([]models.RankEntry, error) {
|
||||||
var response models.GetLeaderboardResultsResponse
|
var response models.ListLeaderboardEntriesResponse
|
||||||
if err := s.transport.do(ctx, http.MethodGet, "/leaderboards/"+url.PathEscape(slug)+"/results", nil, nil, &response); err != nil {
|
|
||||||
|
if err := s.transport.do(ctx, http.MethodGet, "/leaderboards/"+url.PathEscape(slug)+"/entries", nil, nil, &response); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.Entries, nil
|
return response.Entries, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *LeaderboardsService) DeleteEntry(ctx context.Context, slug string, entryID string) error {
|
||||||
|
return s.transport.do(ctx, http.MethodDelete, "/leaderboards/"+url.PathEscape(slug)+"/entries/"+url.PathEscape(entryID), nil, nil, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LeaderboardsService) UpdateEntry(ctx context.Context, slug string, entry *models.RankEntry) error {
|
||||||
|
body := models.UpdateLeaderboardEntryRequest{
|
||||||
|
Score: entry.Score,
|
||||||
|
}
|
||||||
|
return s.transport.do(ctx, http.MethodPatch, "/leaderboards/"+url.PathEscape(slug)+"/entries/"+url.PathEscape(entry.PlayerID), nil, body, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *LeaderboardsService) SubmitEntry(ctx context.Context, slug string, entry *models.RankEntry) error {
|
||||||
|
body := models.SubmitLeaderboardEntryRequest{
|
||||||
|
PlayerID: entry.PlayerID,
|
||||||
|
Score: entry.Score,
|
||||||
|
}
|
||||||
|
return s.transport.do(ctx, http.MethodPost, "/leaderboards/"+url.PathEscape(slug)+"/entries", nil, body, nil)
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
package models
|
package models
|
||||||
|
|
||||||
type GetLeaderboardResultsResponse struct {
|
type ListLeaderboardEntriesResponse struct {
|
||||||
Entries []RankEntry `json:"entries,omitempty"`
|
Entries []RankEntry `json:"entries,omitempty"`
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// Code generated by apigen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
type SubmitLeaderboardEntryRequest struct {
|
||||||
|
PlayerID string `json:"playerId,omitempty"`
|
||||||
|
Score float64 `json:"score,omitempty"`
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// Code generated by apigen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
type UpdateLeaderboardEntryRequest struct {
|
||||||
|
Score float64 `json:"score,omitempty"`
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user