package rudder import ( "context" "net/http" "net/url" "hub.rudder.build/rudder/rudder-go-sdk/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 QuestID 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, QuestID: parameters.QuestID}}, }) } func (h *PlayerQuestsHandle) ForceComplete(ctx context.Context, parameters PlayerQuestParameters) error { return h.quests.ForceComplete(ctx, PlayerQuestsParameters{ IdempotencyKey: parameters.IdempotencyKey, Items: []PlayerQuestRef{{PlayerID: h.playerID, QuestID: parameters.QuestID}}, }) } func (h *PlayerQuestsHandle) ForceClaim(ctx context.Context, parameters PlayerQuestParameters) error { return h.quests.ForceClaim(ctx, PlayerQuestsParameters{ IdempotencyKey: parameters.IdempotencyKey, Items: []PlayerQuestRef{{PlayerID: h.playerID, QuestID: parameters.QuestID}}, }) }