Пример #1
0
        /// <summary>
        /// Send an arbitrary string to the user's sandbox
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        private IEnumerator SetUserSandboxDataCor(string data)
        {
            var requestData = RewardMobWebRequestFactory.CreateSendSandboxDataRequest(data);

            WWW postUserDataRequest = new WWW(RewardMobEndpoints.GetSendUserDataEndpoint(), requestData.Payload, requestData.Headers);

            yield return(postUserDataRequest);
        }
Пример #2
0
        /// <summary>
        /// Get the user data stored in the user's sandbox
        /// </summary>
        /// <param name="callback"></param>
        /// <returns></returns>
        private IEnumerator GetUserSandboxDataCor(Action <string> callback)
        {
            var requestData = RewardMobWebRequestFactory.CreateGetSandboxDataRequest();

            WWW postUserDataRequest = new WWW(RewardMobEndpoints.GetSendUserDataEndpoint(), requestData.Payload, requestData.Headers);

            yield return(postUserDataRequest);

            callback(postUserDataRequest.text);
        }
Пример #3
0
        /// <summary>
        /// Send off POST request for cached rewards
        /// </summary>
        private IEnumerator PostCachedRewards(List <Reward> backupContainer = null)
        {
            //create the headers/payload
            var requestData = RewardMobWebRequestFactory.CreateCachedRewardsRequest(cachedRewards.ToArray());

            WWW bulkPostRewards = new WWW(RewardMobEndpoints.GetMultiRewardEndpoint(), requestData.Payload, requestData.Headers);

            //halt for request to finish
            yield return(bulkPostRewards);

            //check if succeeded or not
            if (!string.IsNullOrEmpty(bulkPostRewards.error) && backupContainer != null)
            {
                cachedRewards = backupContainer;
            }
        }
Пример #4
0
        /// <summary>
        /// Asynchronous method to send Reward off to API
        ///
        /// TODO: Should be split into more defined methods.
        /// </summary>
        /// <param name="rewardAmount">The amount of rewards to send.</param>
        /// <param name="rewardMessage">A short description explaining why the rewards were earned.</param>
        /// <returns>Cor</returns>
        private IEnumerator SendRewardCor(int rewardAmount, string rewardMessage, Action <Reward> onSuccess, Action <string> onFailed)
        {
            //check time remaining
            var webRequest = new WWW(RewardMobEndpoints.GetTournamentTimeRemainingEndpoint() + RewardMob.instance.gameID);

            //halt execution until request returns
            yield return(webRequest);

            float secondsRemaining;

            float.TryParse(webRequest.text, out secondsRemaining);

            //if there's no time remaining, don't bother
            if (secondsRemaining <= 0)
            {
                yield break;
            }

            //check if the reward is "cacheworthy"
            if (ShouldCache())
            {
                Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString()));

                //update the user
                onSuccess(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage));
                yield break;
            }

            //prepare the request
            var requestData = RewardMobWebRequestFactory.CreateRewardRequest(rewardAmount, rewardMessage);

            WWW postRewardRequest = new WWW(RewardMobEndpoints.GetSingleRewardEndpoint(), requestData.Payload, requestData.Headers);

            yield return(postRewardRequest);

            HandleRewardRequestClientsideUpdate(postRewardRequest, new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage), onSuccess, onFailed);

            //if we got an authorization error, cache it!
            if (!string.IsNullOrEmpty(postRewardRequest.error))
            {
                Cache(new Reward(RewardMob.instance.platformID, rewardAmount, rewardMessage, System.DateTime.UtcNow.ToString()));
            }
        }