From 71a6e19897a703b77298e29832928758f1b7a5eb Mon Sep 17 00:00:00 2001 From: shawn Date: Mon, 18 Aug 2014 09:19:54 +1200 Subject: [PATCH 1/6] Added 4DP support. Default to include unitdp=4 querystring in all requests. --- source/XeroApi/Integration/IntegrationProxy.cs | 18 +++++++++++++++--- source/XeroApi/Repository.cs | 6 +++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/source/XeroApi/Integration/IntegrationProxy.cs b/source/XeroApi/Integration/IntegrationProxy.cs index 6fe757a..9926b5d 100644 --- a/source/XeroApi/Integration/IntegrationProxy.cs +++ b/source/XeroApi/Integration/IntegrationProxy.cs @@ -12,15 +12,17 @@ namespace XeroApi.Integration public class IntegrationProxy : IIntegrationProxy { private readonly IOAuthSession _oauthSession; + private bool _is4DP; /// /// Initializes a new instance of the class. /// /// The oauth session. - public IntegrationProxy (IOAuthSession oauthSession) + public IntegrationProxy (IOAuthSession oauthSession, bool is4DP) { _oauthSession = oauthSession; + _is4DP = is4DP; } @@ -84,7 +86,7 @@ public string UpdateOrCreateElements(string endpointName, string body) ModelTypeHelper.Pluralize(endpointName), null, null, - new NameValueCollection { { "summarizeErrors", "false" } }, + GetAdditionalQueryParams(), null); if (consumerResponse.IsGoodResponse || consumerResponse.IsClientError) @@ -105,7 +107,7 @@ public string CreateElements(string endpointName, string body) ModelTypeHelper.Pluralize(endpointName), null, null, - new NameValueCollection { { "summarizeErrors", "false" } }, + GetAdditionalQueryParams(), null); if (consumerResponse.IsGoodResponse || consumerResponse.IsClientError) @@ -333,5 +335,15 @@ public static Uri ConstructChildResourceUri(Uri baseUrl, string endpointName, st return uriBuilder.Uri; } + + private NameValueCollection GetAdditionalQueryParams() + { + var additionalQueryParams = new NameValueCollection { { "summarizeErrors", "false" } }; + if (_is4DP) + { + additionalQueryParams.Add("unitdp", "4"); + } + return additionalQueryParams; + } } } diff --git a/source/XeroApi/Repository.cs b/source/XeroApi/Repository.cs index 3cd9642..7901078 100644 --- a/source/XeroApi/Repository.cs +++ b/source/XeroApi/Repository.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; @@ -20,9 +20,9 @@ public class Repository : IRepository /// Initializes a new instance of the class. /// /// The oauth session. - public Repository(IOAuthSession oauthSession) + public Repository(IOAuthSession oauthSession, bool is4DP = true) { - _proxy = (new IntegrationProxy(oauthSession)); + _proxy = (new IntegrationProxy(oauthSession, is4DP)); _provider = new ApiQueryProvider(_proxy); } From 989ccb0927e023732f2de4616f1665f91cb3efb2 Mon Sep 17 00:00:00 2001 From: Gavin Date: Thu, 4 May 2017 12:17:48 +1200 Subject: [PATCH 2/6] ACCINT-1057. Update XeroApi package to handle partner session without client ssl certificate. --- .../OAuth/Consumer/ConsumerRequestTests.cs | 6 +-- source/XeroApi.Tests/XeroApi.Tests.csproj | 3 ++ source/XeroApi.VBTests/XeroApi.VBTests.vbproj | 3 ++ .../XeroApi/OAuth/Consumer/ConsumerRequest.cs | 36 ++++++------------ .../Consumer/DefaultConsumerRequestFactory.cs | 11 +----- .../OAuth/Framework/DateTimeUtility.cs | Bin 1629 -> 1679 bytes .../XeroApi/OAuth/Framework/NonceGenerator.cs | Bin 1588 -> 1613 bytes source/XeroApi/OAuth/XeroApiEndpoints.cs | 6 +-- source/XeroApi/OAuth/XeroApiPartnerSession.cs | 8 ++-- 9 files changed, 28 insertions(+), 45 deletions(-) diff --git a/source/XeroApi.Tests/OAuth/Consumer/ConsumerRequestTests.cs b/source/XeroApi.Tests/OAuth/Consumer/ConsumerRequestTests.cs index fdc4e76..fcc70ab 100644 --- a/source/XeroApi.Tests/OAuth/Consumer/ConsumerRequestTests.cs +++ b/source/XeroApi.Tests/OAuth/Consumer/ConsumerRequestTests.cs @@ -53,7 +53,7 @@ public void to_consumer_response_with_current_date_string_should_pass_validation [Test] public void it_can_parse_unset_IfModifiedSince_date() { - ConsumerRequest consumerRequest = new ConsumerRequest(null, null, null, null); + ConsumerRequest consumerRequest = new ConsumerRequest(null, null, null); NameValueCollection headers = new NameValueCollection(); OAuthContext oauthContext = new OAuthContext {Headers = headers}; @@ -126,7 +126,7 @@ public void it_can_read_IfModifiedSince_date_from_oauth_context_property() private static ConsumerRequest NewConsumerRequest() { - return new ConsumerRequest(null, null, null, null); + return new ConsumerRequest(null, null, null); } private static ConsumerRequest NewConsumerRequest(OAuthContext oAuthContext) @@ -142,7 +142,7 @@ private static ConsumerRequest NewConsumerRequest(OAuthContext oAuthContext) ConsumerRequestRunner = consumerRequestRunner }; - return new ConsumerRequest(oAuthSession, oAuthContext, consumerContext, new NullCertificateFactory()); + return new ConsumerRequest(oAuthSession, oAuthContext, consumerContext); } } } diff --git a/source/XeroApi.Tests/XeroApi.Tests.csproj b/source/XeroApi.Tests/XeroApi.Tests.csproj index c2e8f3e..eca9fea 100644 --- a/source/XeroApi.Tests/XeroApi.Tests.csproj +++ b/source/XeroApi.Tests/XeroApi.Tests.csproj @@ -82,4 +82,7 @@ PreserveNewest + + + \ No newline at end of file diff --git a/source/XeroApi.VBTests/XeroApi.VBTests.vbproj b/source/XeroApi.VBTests/XeroApi.VBTests.vbproj index ac5a326..80f07e9 100644 --- a/source/XeroApi.VBTests/XeroApi.VBTests.vbproj +++ b/source/XeroApi.VBTests/XeroApi.VBTests.vbproj @@ -110,6 +110,9 @@ XeroApi + + +