Skip to content

Commit

Permalink
Merge pull request #18 from /issues/17
Browse files Browse the repository at this point in the history
Updated serialization strategy
  • Loading branch information
ahwm committed Aug 24, 2021
2 parents 9599ef1 + bdb0abc commit 589dc78
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 46 deletions.
5 changes: 0 additions & 5 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,6 @@ jobs:
# a pull request then we can checkout the head.
fetch-depth: 2

# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
Expand Down
5 changes: 3 additions & 2 deletions src/GodaddyWrapper/Client.AbuseTicket.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;

using Newtonsoft.Json;

namespace GodaddyWrapper
{
public partial class Client
Expand All @@ -21,7 +22,7 @@ public partial class Client
public async Task<AbuseTicketIdResponse> CreateAbuseTicket(AbuseTicketCreate request)
{
var client = GetBaseHttpClient();
var response = await client.PostAsync($"abuse/tickets", request);
var response = await client.PostAsync($"abuse/tickets", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<AbuseTicketIdResponse>();
}
Expand Down
5 changes: 3 additions & 2 deletions src/GodaddyWrapper/Client.Aftermarket.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;

using Newtonsoft.Json;

namespace GodaddyWrapper
{
public partial class Client
Expand All @@ -22,7 +23,7 @@ public partial class Client
public async Task<AftermarketListingActionResponse> AddExpiryAuction(List<AftermarketListingExpiryCreate> request)
{
var client = GetBaseHttpClient();
var response = await client.PostAsync($"aftermarket/listings/expiry", request);
var response = await client.PostAsync($"aftermarket/listings/expiry", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<AftermarketListingActionResponse>();
}
Expand Down
21 changes: 11 additions & 10 deletions src/GodaddyWrapper/Client.Certificate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@
using System.Net.Http.Headers;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;

using GodaddyWrapper.Helper;
using Newtonsoft.Json;

namespace GodaddyWrapper
{
public partial class Client
{
{
public partial class Client
{
/// <summary>
/// Cancel a pending certificate
/// </summary>
Expand All @@ -22,7 +23,7 @@ public async Task CancelCertificate(CertificateCancel request)
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"certificates/{request.CertificateId}/cancel", request);
var response = await client.PostAsync($"certificates/{request.CertificateId}/cancel", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return;
}
Expand Down Expand Up @@ -51,7 +52,7 @@ public async Task<CertificateIdentifierResponse> CreateCertificate(CertificatesC
var client = GetBaseHttpClient();
if (XMarketId != null)
client.DefaultRequestHeaders.Add("X-Market-Id", XMarketId);
var response = await client.PostAsync($"certificates", request);
var response = await client.PostAsync($"certificates", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<CertificateIdentifierResponse>();
}
Expand All @@ -78,7 +79,7 @@ public async Task ReissueActiveCertificate(CertificateReissue request, string ce
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"certificates/{certificateId}/reissue", request);
var response = await client.PostAsync($"certificates/{certificateId}/reissue", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return;
}
Expand All @@ -92,7 +93,7 @@ public async Task RenewActiveCertificate(CertificateRenew request, string certif
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"certificates/{certificateId}/renew", request);
var response = await client.PostAsync($"certificates/{certificateId}/renew", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return;
}
Expand Down Expand Up @@ -160,7 +161,7 @@ public async Task RevokeActiveCertificate(CertificateRevoke request, string cert
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"certificates/{certificateId}/revoke", request);
var response = await client.PostAsync($"certificates/{certificateId}/revoke", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return;
}
Expand Down
31 changes: 16 additions & 15 deletions src/GodaddyWrapper/Client.Domain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;

using Newtonsoft.Json;

namespace GodaddyWrapper
{
public partial class Client
Expand All @@ -26,7 +27,7 @@ public async Task<bool> AddDNSRecordsToDomain(List<DNSRecord> request,string dom
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PatchAsync($"domains/{domain}/records", request);
var response = await client.PatchAsync($"domains/{domain}/records", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand All @@ -39,7 +40,7 @@ public async Task<DomainAvailableBulkResultResponse> BulkCheckDomainAvailable(Re
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"domains/available?checkType={request.CheckType}", request.Domains);
var response = await client.PostAsync($"domains/available?checkType={request.CheckType}", JsonConvert.SerializeObject(request.Domains, JsonSettings));
await CheckResponseMessageIsValid(response); ;
if (response.StatusCode.ToString() == "203")
return new DomainAvailableBulkResultResponse
Expand Down Expand Up @@ -111,7 +112,7 @@ public async Task<DomainPurchaseResponse> PurchaseDomain(DomainPurchase request,
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PostAsync("domains/purchase", request);
var response = await client.PostAsync("domains/purchase", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<DomainPurchaseResponse>();
}
Expand All @@ -127,7 +128,7 @@ public async Task<DomainPurchaseResponse> PurchaseDomainWithoutPrivacy(DomainPur
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PostAsync("domains/purchase", request);
var response = await client.PostAsync("domains/purchase", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<DomainPurchaseResponse>();
}
Expand All @@ -144,7 +145,7 @@ public async Task<DomainPurchaseResponse> PurchasePrivacy(PrivacyPurchase reques
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PostAsync($"domains/{domain}/privacy/purchase", request);
var response = await client.PostAsync($"domains/{domain}/privacy/purchase", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<DomainPurchaseResponse>();
}
Expand All @@ -170,7 +171,7 @@ public async Task<bool> PurchaseDomainValidate(DomainPurchase request)
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync("domains/purchase/validate", request);
var response = await client.PostAsync("domains/purchase/validate", JsonConvert.SerializeObject(request, JsonSettings));
return response.IsSuccessStatusCode;
}
/// <summary>
Expand All @@ -182,7 +183,7 @@ public async Task<bool> PurchaseDomainValidateWithoutPrivacy(DomainPurchaseWitho
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync("domains/purchase/validate", request);
var response = await client.PostAsync("domains/purchase/validate", JsonConvert.SerializeObject(request, JsonSettings));
return response.IsSuccessStatusCode;
}
/// <summary>
Expand All @@ -198,7 +199,7 @@ public async Task<DomainPurchaseResponse> RenewDomain(DomainRenew request,string
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PostAsync($"domains/{domain}/renew", request);
var response = await client.PostAsync($"domains/{domain}/renew", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<DomainPurchaseResponse>();
}
Expand All @@ -215,7 +216,7 @@ public async Task<bool> ReplaceDNSRecord(List<DNSRecord> request,string domain,
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PutAsync($"domains/{domain}/records", request);
var response = await client.PutAsync($"domains/{domain}/records", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand All @@ -233,7 +234,7 @@ public async Task<bool> ReplaceDNSRecordsWithType(List<DNSRecordCreateType> requ
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PutAsync($"domains/{domain}/records/{Type}", request);
var response = await client.PutAsync($"domains/{domain}/records/{Type}", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand All @@ -252,7 +253,7 @@ public async Task<bool> ReplaceDNSRecordsWithTypeAndName(List<DNSRecordCreateTyp
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PutAsync($"domains/{domain}/records/{Type}/{Name}", request);
var response = await client.PutAsync($"domains/{domain}/records/{Type}/{Name}", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand Down Expand Up @@ -364,7 +365,7 @@ public async Task<DomainTransferIn> TransferDomain(DomainTransferIn request,stri
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PostAsync($"domains/{domain}/transfer", request);
var response = await client.PostAsync($"domains/{domain}/transfer", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<DomainTransferIn>();
}
Expand All @@ -381,7 +382,7 @@ public async Task<bool> UpdateDomain(DomainUpdate request,string domain, string
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PatchAsync($"domains/{domain}", request);
var response = await client.PatchAsync($"domains/{domain}", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand All @@ -398,7 +399,7 @@ public async Task<bool> UpdateDomainContacts(DomainContacts request,string domai
var client = GetBaseHttpClient();
if (XShopperId != null)
client.DefaultRequestHeaders.Add("X-Shopper-Id", XShopperId);
var response = await client.PatchAsync($"domains/{domain}/contacts", request);
var response = await client.PatchAsync($"domains/{domain}/contacts", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return response.IsSuccessStatusCode;
}
Expand Down
7 changes: 4 additions & 3 deletions src/GodaddyWrapper/Client.Shopper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;

using Newtonsoft.Json;

namespace GodaddyWrapper
{
public partial class Client
Expand All @@ -22,7 +23,7 @@ public async Task<ShopperIdResponse> CreateSubaccount(SubaccountCreate request)
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"shoppers/subaccount",request);
var response = await client.PostAsync($"shoppers/subaccount", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<ShopperIdResponse>();
}
Expand All @@ -49,7 +50,7 @@ public async Task<ShopperIdResponse> UpdateShopper(ShopperUpdate request, string
{
CheckRequestValid(request);
var client = GetBaseHttpClient();
var response = await client.PostAsync($"shoppers/{shopperId}", request);
var response = await client.PostAsync($"shoppers/{shopperId}", JsonConvert.SerializeObject(request, JsonSettings));
await CheckResponseMessageIsValid(response);
return await response.Content.ReadAsAsync<ShopperIdResponse>();
}
Expand Down
23 changes: 19 additions & 4 deletions src/GodaddyWrapper/Client.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,30 @@
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
using GodaddyWrapper.Helper;
using GodaddyWrapper.Base;

using GodaddyWrapper.Base;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

namespace GodaddyWrapper
{
public partial class Client
{
public partial class Client
{
private string AccessKey { get; }
private string SecretKey { get; }
private string RootPath { get; } = "https://api.ote-godaddy.com/v1/";

readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy
{
OverrideSpecifiedNames = false
}
},
NullValueHandling = NullValueHandling.Ignore
};

/// <summary>
/// Client for calling API
/// </summary>
Expand Down
6 changes: 3 additions & 3 deletions src/GodaddyWrapper/GodaddyWrapper.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@

<PropertyGroup>
<Description>GodaddyWrapper.NET is a .NET Wrapper for calling GoDaddy REST API.</Description>
<Copyright>Copyright 2015 - 2017 Vip30, 2018 - 2020 ahwm23</Copyright>
<Copyright>Copyright 2015 - 2017 Vip30, 2018 - 2021 ahwm23</Copyright>
<AssemblyTitle>GodaddyWrapper.Net</AssemblyTitle>
<Authors>vip30, ahwm23</Authors>
<Version>1.2.2</Version>
<Version>1.2.3</Version>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<TargetFrameworks>netstandard1.3;net462;netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<AssemblyName>GodaddyWrapper</AssemblyName>
<PackageId>GodaddyWrapper</PackageId>
<PackageTags>Godaddy;Wrapper;API;DotNet Core;Rest</PackageTags>
<PackageReleaseNotes>Cleaned up duplicate class</PackageReleaseNotes>
<PackageReleaseNotes>Adjusted JSON serialization strategy</PackageReleaseNotes>
<PackageProjectUrl>https://github.com/ahwm/GodaddyWrapper.Net</PackageProjectUrl>
<RepositoryUrl>https://github.com/ahwm/GodaddyWrapper.Net</RepositoryUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Expand Down
14 changes: 13 additions & 1 deletion src/GodaddyWrapper/Helper/QueryStringBuilder.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using GodaddyWrapper.Attributes;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
Expand All @@ -11,6 +12,17 @@ internal class QueryStringBuilder
{
public static string RequestObjectToQueryString(object RequestObject)
{
var settings = new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy
{
OverrideSpecifiedNames = false
}
},
NullValueHandling = NullValueHandling.Ignore
};
var url = "?";
foreach (var property in RequestObject.GetType().GetRuntimeProperties())
{
Expand All @@ -26,7 +38,7 @@ public static string RequestObjectToQueryString(object RequestObject)
else if (IsList(property.PropertyType.GetTypeInfo()))
url += $"{ToFirstLetterLower(property.Name)}={ConvertFromList(property.GetValue(RequestObject))}&";
else
url += $"{ToFirstLetterLower(property.Name)}={JsonConvert.SerializeObject(property.GetValue(RequestObject), new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })}&";
url += $"{ToFirstLetterLower(property.Name)}={JsonConvert.SerializeObject(property.GetValue(RequestObject), settings)}&";
}
}
return url.Trim('&');
Expand Down
5 changes: 4 additions & 1 deletion src/GodaddyWrapper/Requests/CertificatesCreate.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
Expand All @@ -16,6 +17,8 @@ public class CertificatesCreate
public string SlotSize { get; set; }
public string CallbackUrl { get; set; }
public string RootType { get; set; }

[JsonProperty(PropertyName = "intelVPro")]
public bool IntelVPro { get; set; }
public CertificateOrganizationCreate Organization { get; set; }
}
Expand Down

0 comments on commit 589dc78

Please sign in to comment.