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) }