quests: admin player-quest client (list/reset/force-complete/force-claim), generated models
CI / build (push) Successful in 56s

This commit is contained in:
edmand46
2026-08-25 16:25:29 +03:00
parent cafc2bfc6a
commit 4b5922c92f
6 changed files with 77 additions and 0 deletions
+2
View File
@@ -21,6 +21,7 @@ type Client struct {
Wallet *WalletService
Inventory *InventoryService
Storage *StorageService
Quests *QuestsService
ProjectStorage *ProjectStorageService
}
@@ -53,6 +54,7 @@ func New(config Config) (*Client, error) {
Wallet: &WalletService{transport: transport},
Inventory: &InventoryService{transport: transport},
Storage: &StorageService{transport: transport},
Quests: &QuestsService{transport: transport},
ProjectStorage: &ProjectStorageService{transport: transport},
}, nil
+10
View File
@@ -0,0 +1,10 @@
// Code generated by apigen. DO NOT EDIT.
package models
type AdminPlayerQuest struct {
Name string `json:"name,omitempty"`
Objectives []AdminPlayerQuestObjective `json:"objectives,omitempty"`
QuestID string `json:"questId,omitempty"`
Status string `json:"status,omitempty"`
}
+9
View File
@@ -0,0 +1,9 @@
// Code generated by apigen. DO NOT EDIT.
package models
type AdminPlayerQuestObjective struct {
Current int64 `json:"current,omitempty"`
ObjectiveID string `json:"objectiveId,omitempty"`
Target int64 `json:"target,omitempty"`
}
+7
View File
@@ -0,0 +1,7 @@
// Code generated by apigen. DO NOT EDIT.
package models
type AdminPlayerQuestRequest struct {
QuestID string `json:"questId,omitempty"`
}
+7
View File
@@ -0,0 +1,7 @@
// Code generated by apigen. DO NOT EDIT.
package models
type ListPlayerQuestsResponse struct {
Quests []AdminPlayerQuest `json:"quests,omitempty"`
}
+42
View File
@@ -0,0 +1,42 @@
package rudder
import (
"context"
"net/http"
"net/url"
"hub.rudder.build/rudder/rudder-go-sdk/models"
)
type QuestsService struct {
transport *transport
}
func (s *QuestsService) ListPlayerQuests(ctx context.Context, playerID string) ([]models.AdminPlayerQuest, error) {
var response models.ListPlayerQuestsResponse
if err := s.transport.do(ctx, http.MethodGet, "/players/"+url.PathEscape(playerID)+"/quests", nil, nil, &response); err != nil {
return nil, err
}
return response.Quests, nil
}
func (s *QuestsService) ResetPlayerQuest(ctx context.Context, playerID string, questID string) error {
body := models.AdminPlayerQuestRequest{
QuestID: questID,
}
return s.transport.do(ctx, http.MethodPost, "/players/"+url.PathEscape(playerID)+"/quests/reset", nil, body, nil)
}
func (s *QuestsService) ForceCompletePlayerQuest(ctx context.Context, playerID string, questID string) error {
body := models.AdminPlayerQuestRequest{
QuestID: questID,
}
return s.transport.do(ctx, http.MethodPost, "/players/"+url.PathEscape(playerID)+"/quests/force-complete", nil, body, nil)
}
func (s *QuestsService) ForceClaimPlayerQuest(ctx context.Context, playerID string, questID string) error {
body := models.AdminPlayerQuestRequest{
QuestID: questID,
}
return s.transport.do(ctx, http.MethodPost, "/players/"+url.PathEscape(playerID)+"/quests/force-claim", nil, body, nil)
}