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:
edmand46
2026-08-13 08:47:14 +03:00
parent d602a95baf
commit ae74fb22d3
12 changed files with 221 additions and 22 deletions
+46
View File
@@ -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)
}