a217f255b8
CI / build (push) Successful in 12s
Claude-Session: https://claude.ai/code/session_01SMCvdwDmuxoaqGgvGBLk1V
50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
package rudder
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"net/url"
|
|
|
|
"hub.rudder.build/rudder/rudder-go-sdk/v2/models"
|
|
)
|
|
|
|
type PlayerQuestsHandle struct {
|
|
playerID string
|
|
transport *transport
|
|
quests *QuestsService
|
|
}
|
|
|
|
func (h *PlayerQuestsHandle) List(ctx context.Context) ([]PlayerQuest, error) {
|
|
var response models.ListPlayerQuestsResponse
|
|
if err := h.transport.do(ctx, http.MethodGet, "/players/"+url.PathEscape(h.playerID)+"/quests", nil, nil, &response); err != nil {
|
|
return nil, err
|
|
}
|
|
return response.Quests, nil
|
|
}
|
|
|
|
type PlayerQuestParameters struct {
|
|
IdempotencyKey string
|
|
QuestSlug string
|
|
}
|
|
|
|
func (h *PlayerQuestsHandle) Reset(ctx context.Context, parameters PlayerQuestParameters) error {
|
|
return h.quests.Reset(ctx, PlayerQuestsParameters{
|
|
IdempotencyKey: parameters.IdempotencyKey,
|
|
Items: []PlayerQuestRef{{PlayerID: h.playerID, QuestSlug: parameters.QuestSlug}},
|
|
})
|
|
}
|
|
|
|
func (h *PlayerQuestsHandle) ForceComplete(ctx context.Context, parameters PlayerQuestParameters) error {
|
|
return h.quests.ForceComplete(ctx, PlayerQuestsParameters{
|
|
IdempotencyKey: parameters.IdempotencyKey,
|
|
Items: []PlayerQuestRef{{PlayerID: h.playerID, QuestSlug: parameters.QuestSlug}},
|
|
})
|
|
}
|
|
|
|
func (h *PlayerQuestsHandle) ForceClaim(ctx context.Context, parameters PlayerQuestParameters) error {
|
|
return h.quests.ForceClaim(ctx, PlayerQuestsParameters{
|
|
IdempotencyKey: parameters.IdempotencyKey,
|
|
Items: []PlayerQuestRef{{PlayerID: h.playerID, QuestSlug: parameters.QuestSlug}},
|
|
})
|
|
}
|