public GenericResult <List <poolingEvent> > Sales(string token, string merchantId)
        {
            var result = new GenericResult <List <poolingEvent> >();

            //var parametros = "merchantId=" + merchantId;

            var url     = string.Format("{0}merchants/{1}/sales", _urlBase, merchantId);
            var client  = new RestClientBase(url);
            var request = new RestRequest(Method.GET);

            request.AddHeader("Authorization", string.Format("Bearer {0}", token));
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                result.Result   = JsonConvert.DeserializeObject <List <poolingEvent> >(response.Content);
                result.Success  = true;
                result.Json     = response.Content;
                result.Request  = client.requestResult;
                result.Response = client.responsetResult;
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.NotFound || response.StatusCode == System.Net.HttpStatusCode.NoContent)
            {
                result.Result  = new List <poolingEvent>();
                result.Success = true;
            }
            else
            {
                result.Message = response.StatusDescription;
            }
            result.StatusCode = response.StatusCode;
            return(result);
        }
Example #2
0
        public async Task <T> PerformAsync <T>(Method paramMethod, Object paramObject) where T : new()
        {
            RestClient localClient = RestClientHelper.GetDefaultRestClient(new Uri(TerodoViewApiBase.UrlEndpoint));

            localClient.AddDefaultHeaders();
            if (String.IsNullOrEmpty(TerodoViewApiBase.Token?.token))
            {
                await(new TerodoViewApiToken()).GetTokenAsync();
            }

            RestRequest localRequest = RestClientHelper.GetDefaultRestRequest(Resource, paramMethod, paramObject);

            localRequest.AddAuthencationHeaders();

            try
            {
                IRestResponse localResponse = await RestClientBase.ExecuteCallAsync(localClient, localRequest);

                return(JsonConvert.DeserializeObject <T>(localResponse.Content, RestClientHelper.DefaultJsonSerializerSettings));
            }
            finally
            {
                localClient  = null;
                localRequest = null;
            }
        }
        ///// <summary>
        ///// Informa ao IFood que o pedido foi integrado pelo e-PDV.
        ///// Integração significa que o e-PDV foi capaz de realizar o parse do pedido e integrar em seu sistema.
        ///// </summary>
        ///// <param name="token"></param>
        ///// <param name="reference"></param>
        ///// <returns></returns>
        //public GenericSimpleResult OrdersIntegration(string token, string reference)
        //{
        //    var data = new { };

        //    var result = new GenericSimpleResult();

        //    var url = string.Format("{0}order/{1}/{2}/{3}/{4}", _urlBase, Constants.VERSION_1, Constants.URL_ORDER, reference, Constants.URL_ORDER_INTEGRATION);
        //    var client = new RestClient(url);
        //    var request = new RestRequest(Method.POST);
        //    request.AddHeader("Authorization", string.Format("bearer {0}", token));
        //    request.AddParameter("application/json", data, ParameterType.RequestBody);
        //    IRestResponse response = client.Execute(request);
        //    if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
        //    {
        //        result.Success = true;
        //    }
        //    else
        //    {
        //        result.Message = response.StatusDescription;
        //    }

        //    return result;
        //}

        /// <summary>
        /// Informa ao IFood que o pedido foi confirmado pelo e-PDV.
        /// </summary>
        /// <param name="token"></param>
        /// <param name="reference"></param>
        /// <returns></returns>
        public GenericSimpleResult OrdersConfirmation(string token, string reference)
        {
            var data   = new { };
            var result = new GenericSimpleResult();

            var url     = string.Format("{0}order/{1}/{2}/{3}/{4}", _urlBase, Constants.VERSION_1, Constants.URL_ORDER, reference, Constants.URL_ORDER_CONFIRM);
            var client  = new RestClientBase(url);
            var request = new RestRequest(Method.POST);

            request.AddHeader("Authorization", string.Format("Bearer {0}", token));
            request.AddParameter("application/json", data, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
            {
                result.Success = true;
            }
            else
            {
                result.Message = response.StatusDescription;
            }
            result.Request    = client.requestResult;
            result.Response   = client.responsetResult;
            result.StatusCode = response.StatusCode;

            return(result);
        }
        /// <summary>
        /// Geralmente, após o e-PDV receber um evento com o código 'PLACED', é necessário obter os detalhes do pedido.
        /// Neste cenário, o campo correlationId do evento refere-se à referência do pedido e deve ser fornecido a este endpoint.
        /// </summary>
        /// <param name="token"></param>
        /// <param name="reference"></param>
        /// <returns></returns>
        public GenericResult <order> Orders(string token, string reference)
        {
            var result  = new GenericResult <order>();
            var url     = string.Format("{0}order/{1}/{2}/{3}", _urlBase, Constants.VERSION_1, Constants.URL_ORDER, reference);
            var client  = new RestClientBase(url);
            var request = new RestRequest(Method.GET);

            request.AddHeader("Authorization", string.Format("bearer {0}", token));
            var response = client.Execute <RestObject>(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                result.Result   = JsonConvert.DeserializeObject <order>(response.Content);
                result.Success  = true;
                result.Json     = response.Content;
                result.Request  = client.requestResult;
                result.Response = client.responsetResult;
            }
            else
            {
                result.Message = response.StatusDescription;
            }

            result.Request    = client.requestResult;
            result.Response   = client.responsetResult;
            result.StatusCode = response.StatusCode;
            return(result);
        }
        public GenericResult <List <status> > Status(string token, string merchantGuid)
        {
            var result = new GenericResult <List <status> >();

            var url     = string.Format("{0}merchant/v1.0/merchants/{1}/status/", _urlBase, merchantGuid);
            var client  = new RestClientBase(url);
            var request = new RestRequest(Method.GET);

            request.AddHeader("Authorization", string.Format("Bearer {0}", token));
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                result.Result   = JsonConvert.DeserializeObject <List <status> >(response.Content);
                result.Success  = true;
                result.Json     = response.Content;
                result.Request  = client.requestResult;
                result.Response = client.responsetResult;
            }
            else
            {
                var retorno = JsonConvert.DeserializeObject <error_return>(response.Content);
                if (retorno != null && retorno.error != null)
                {
                    result.Message = retorno.error.message;
                }
                else
                {
                    result.Message = response.Content;
                }
            }

            result.StatusCode = response.StatusCode;
            return(result);
        }
Example #6
0
        public async Task Logout()
        {
            var localRestClient = RestClientHelper.GetDefaultRestClient(new Uri(TerodoViewApiBase.UrlEndpoint));
            var localTerodoViewOAuth2Request = new TerodoViewOAuth2Request()
            {
                email = TerodoViewApiBase.Username, password = TerodoViewApiBase.Password
            };
            var localRequest = RestClientHelper.GetDefaultRestRequest(TerodoViewApiBase.LogoutEndPoint, Method.DELETE, null);

            localRequest.AddAuthencationHeaders();
            await RestClientBase.ExecuteCallAsync(localRestClient, localRequest);
        }
Example #7
0
        public GenericResult <retornoGeneric <token_data> > OathToken(string username, string password)
        {
            var result = new GenericResult <retornoGeneric <token_data> >();

            try
            {
                var data = new
                {
                    username = username,
                    password = password
                };

                var url = _urlBase + Constants.URL_TOKEN;

                var client = new RestClientBase(url);
                client.Timeout = -1;
                var request = new RestRequest(Method.POST);
                request.AddHeader("Content-Type", "application/json");
                request.AddParameter("application/json", JsonConvert.SerializeObject(data), ParameterType.RequestBody);

                IRestResponse response = client.Execute(request);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    result.Result = JsonConvert.DeserializeObject <retornoGeneric <token_data> >(response.Content);
                    if (result.Result.success)
                    {
                        result.Success = true;
                    }
                    else
                    {
                        result.Message = result.Result.message;
                    }
                }
                else
                {
                    result.Message = response.StatusDescription + $" => {response.Content}";
                }

                result.Json       = response.Content;
                result.Request    = client.requestResult;
                result.Response   = client.responsetResult;
                result.StatusCode = response.StatusCode;
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }

            return(result);
        }
Example #8
0
        public void BeginGetAccessToken_WithNoCredentialsSet_ThrowsException()
        {
            var mock   = Substitute.For <IRestClient>();
            var client = new RestClientBase(mock);

            // client.Credentials = new OAuthCredentials() { Token = "ABC", TokenSecret = "DEF " };

            bool isCallbackFired = false;
            AccessTokenCallbackDelegate callback = (req, resp, o) => { isCallbackFired = true; };

            client.BeginGetAccessToken(@"http://google.com/foo", callback);

            Assert.Fail();
        }
Example #9
0
        public GenericSimpleResult Acknowledgment(string token, List <int> ids)
        {
            var result = new GenericSimpleResult();

            try
            {
                var data = new
                {
                    ids = ids
                };

                var url     = string.Format("{0}{1}", _urlBase, Constants.URL_Acknowledgment);
                var client  = new RestClientBase(url);
                var request = new RestRequest(Method.POST);
                request.AddHeader("Authorization", string.Format("Bearer {0}", token));
                request.AddHeader("Content-Type", "application/json");
                request.AddParameter("application/json", JsonConvert.SerializeObject(data), ParameterType.RequestBody);
                IRestResponse response = client.Execute(request);
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var retorno = JsonConvert.DeserializeObject <retorno>(response.Content);
                    if (retorno.success)
                    {
                        result.Success = true;
                    }
                    else
                    {
                        result.Message = retorno.message;
                    }
                }
                else
                {
                    result.Message = response.Content;
                }

                result.Json       = response.Content;
                result.Request    = client.requestResult;
                result.Response   = client.responsetResult;
                result.StatusCode = response.StatusCode;
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            return(result);
        }
Example #10
0
        private PortalToken RequestToken()
        {
            long account = GetAccount();
            Guid device  = GetDevice();

            var client  = new RestClientBase(GetTokenUri());
            var request = new RestRequest(Method.POST);

            request.AddHeader("Cache-Control", "no-cache");
            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("Account", account);
            request.AddParameter("Device", device);

            var response = client.Execute(request);

            return(JsonConvert.DeserializeObject <PortalToken>(response.Content, new JsonSerializerSettings
            {
                ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor
            }));
        }
Example #11
0
        public GenericResult <retornoGeneric <order_result> > Orders(string token, string merchantid)
        {
            var result = new GenericResult <retornoGeneric <order_result> >();

            try
            {
                var url     = string.Format("{0}{1}/{2}", _urlBase, Constants.URL_ORDERS, merchantid);
                var client  = new RestClientBase(url);
                var request = new RestRequest(Method.GET);
                request.AddHeader("Authorization", string.Format("Bearer {0}", token));
                var response = client.Execute <RestObject>(request);

                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    result.Result = JsonConvert.DeserializeObject <retornoGeneric <order_result> >(response.Content);
                    if (result.Result.success)
                    {
                        result.Success = true;
                    }
                    else
                    {
                        result.Message = result.Result.message;
                    }
                }
                else
                {
                    result.Message = response.StatusDescription + " -> " + response.Content;
                }

                result.Json       = response.Content;
                result.Request    = client.requestResult;
                result.Response   = client.responsetResult;
                result.StatusCode = response.StatusCode;
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }

            return(result);
        }
Example #12
0
        private long GetAccountFromService(Guid device)
        {
            Logger.Info("Requesting Account number from the api.");

            var client  = new RestClientBase(GetAccountUri());
            var request = new RestRequest(Method.POST);

            request.AddHeader("Cache-Control", "no-cache");
            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("Device", device);

            try
            {
                return(Convert.ToInt64(client.Execute(request).Content));
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                throw new UserFriendlyException("Unable to get the Account number from the api. Please manually enter the Account number through the CLI.");
            }
        }
Example #13
0
        public void BeginGetAccessToken_WithCredentialsSet_ThrowsException()
        {
            const string verifier = @"http://google.com/foo";

            var mock   = Substitute.For <IRestClient>();
            var client = new RestClientBase(mock);

            client.Credentials = new OAuthCredentials()
            {
                Token = "ABC", TokenSecret = "DEF "
            };

            bool isCallbackFired = false;
            AccessTokenCallbackDelegate callback = (req, resp, o) => { isCallbackFired = true; };

            client.BeginGetAccessToken(verifier, callback);

            var modifiedCredentials = client.Credentials as OAuthCredentials;

            Assert.That(modifiedCredentials.Type, Is.EqualTo(OAuthType.AccessToken));
            Assert.That(modifiedCredentials.Verifier, Is.EqualTo(verifier));
        }
        /// <summary>
        /// Obtém todos os eventos ainda não recebidos.
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public GenericResult <List <poolingEvent> > EventPolling(string token, string merchantid)
        {
            var result = new GenericResult <List <poolingEvent> >();

            var url     = string.Format("{0}order/{1}/{2}", _urlBase, Constants.VERSION_1, Constants.URL_EVENT_POOLING + "?types=COL,CAN");
            var client  = new RestClientBase(url);
            var request = new RestRequest(Method.GET);

            request.AddHeader("Authorization", string.Format("Bearer {0}", token));
            if (!string.IsNullOrEmpty(merchantid))
            {
                request.AddHeader("x-polling-merchants", merchantid);
            }
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                result.Result  = JsonConvert.DeserializeObject <List <poolingEvent> >(response.Content);
                result.Success = true;
                result.Json    = response.Content;
            }
            else if (response.StatusCode == System.Net.HttpStatusCode.NotFound || response.StatusCode == System.Net.HttpStatusCode.NoContent)
            {
                result.Result  = new List <poolingEvent>();
                result.Success = true;
            }
            else
            {
                result.Message = response.StatusDescription;
            }

            result.StatusCode = response.StatusCode;
            result.Request    = client.requestResult;
            result.Response   = client.responsetResult;

            return(result);
        }
Example #15
0
        public async Task GetTokenAsync()
        {
            var localRestClient  = RestClientHelper.GetDefaultRestClient(new Uri(TerodoViewApiBase.UrlEndpoint));
            var localCredentials = new TerodoViewOAuth2Request()
            {
                email = TerodoViewApiBase.Username, password = TerodoViewApiBase.Password
            };
            var           localRequest      = RestClientHelper.GetDefaultRestRequest(TerodoViewApiBase.LoginEndPoint, Method.POST, localCredentials);
            IRestResponse localRestResponse = await RestClientBase.ExecuteCallAsync(localRestClient, localRequest);

            TerodoViewApiBase.Token = new TerodoViewOAuth2Token();
            try
            {
                TerodoViewApiBase.Token.token       = (string)localRestResponse.Headers.FirstOrDefault(paramX => paramX.Name == "Access-Token")?.Value.ToString();
                TerodoViewApiBase.Token.tokenclient = (string)localRestResponse.Headers.FirstOrDefault(paramX => paramX.Name == "Client")?.Value.ToString();
                TerodoViewApiBase.Token.tokenexpiry = int.Parse(localRestResponse.Headers.FirstOrDefault(paramX => paramX.Name == "Expiry")?.Value.ToString() ?? throw new InvalidOperationException());
                TerodoViewApiBase.Token.tokentype   = (string)localRestResponse.Headers.FirstOrDefault(paramX => paramX.Name == "Token-Type")?.Value.ToString();
                TerodoViewApiBase.Token.tokenuid    = (string)localRestResponse.Headers.FirstOrDefault(paramX => paramX.Name == "Uid")?.Value.ToString();
            }
            catch (Exception localEx)
            {
                throw new Exception($"Error setting token from request headers: {localEx.GetBaseException().Message}");
            }
        }
Example #16
0
 public LoginController(IOptions <RestClientBase> clientBaseAddress)
 {
     _clientBaseAddress = clientBaseAddress.Value;
 }
Example #17
0
 public AdAccountsController(IOptions <RestClientBase> clientBaseAddress)
 {
     _clientBaseAddress = clientBaseAddress.Value;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RawDataServiceRestClient"/> class.
 /// </summary>
 /// <param name="serverUri">The PiWeb Server uri, including port and instance</param>
 /// <param name="maxUriLength">The uri length limit</param>
 /// <param name="restClient">Custom implementation of RestClient</param>
 public RawDataServiceRestClient([NotNull] Uri serverUri, int maxUriLength = RestClientBase.DefaultMaxUriLength, RestClientBase restClient = null)
     : base(restClient ?? new RestClient(serverUri, EndpointName, maxUriLength: maxUriLength))
 {
 }