add player data operations: update, ban/unban, delete, inventory adjust, storage
Players.Update/Ban/Unban/Delete + List search; new InventoryService.Adjust and StorageService.Get/Upsert/Delete; IdempotencyKey on wallet adjust; models regenerated via apigen
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
||||
package rudder
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"hub.rudder.build/rudder/rudder-go-sdk/models"
|
||||
)
|
||||
|
||||
type StorageService struct {
|
||||
transport *transport
|
||||
}
|
||||
|
||||
func (s *StorageService) Get(ctx context.Context, playerID string, storageType string) (*models.PlayerStorage, error) {
|
||||
var response models.PlayerStorage
|
||||
if err := s.transport.do(ctx, http.MethodGet, "/players/"+url.PathEscape(playerID)+"/storage/"+url.PathEscape(storageType), nil, nil, &response); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &response, nil
|
||||
}
|
||||
|
||||
type UpsertStorageParameters struct {
|
||||
Data string
|
||||
ExpiresAt *time.Time
|
||||
}
|
||||
|
||||
func (s *StorageService) Upsert(ctx context.Context, playerID string, storageType string, parameters UpsertStorageParameters) (*models.PlayerStorage, error) {
|
||||
body := models.UpsertPlayerStorageRequest{
|
||||
Data: parameters.Data,
|
||||
}
|
||||
if parameters.ExpiresAt != nil {
|
||||
body.ExpiresAt = parameters.ExpiresAt.Format(time.RFC3339)
|
||||
}
|
||||
|
||||
var response models.PlayerStorage
|
||||
if err := s.transport.do(ctx, http.MethodPut, "/players/"+url.PathEscape(playerID)+"/storage/"+url.PathEscape(storageType), nil, body, &response); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &response, nil
|
||||
}
|
||||
|
||||
func (s *StorageService) Delete(ctx context.Context, playerID string, storageType string) error {
|
||||
return s.transport.do(ctx, http.MethodDelete, "/players/"+url.PathEscape(playerID)+"/storage/"+url.PathEscape(storageType), nil, nil, nil)
|
||||
}
|
||||
Reference in New Issue
Block a user