Skip to content

Commit 7ebd5f5

Browse files
authored
Merge 49fc0ca into 9c4747c
2 parents 9c4747c + 49fc0ca commit 7ebd5f5

2 files changed

Lines changed: 57 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ v1.0
22
-Initial Release.
33

44
1.1
5-
Remove retry logic around reissue pickups
5+
Remove retry logic around reissue pickups
6+
7+
1.1.1
8+
Change incremental sync to use GetModifiedOrders API call

globalsign-mssl-caplugin/Client/GlobalSignApiClient.cs

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.Globalization;
22
using System.ServiceModel;
3+
using System.Text;
4+
35
using Keyfactor.AnyGateway.Extensions;
46
using Keyfactor.Extensions.CAPlugin.GlobalSign.Api;
57
using Keyfactor.Logging;
@@ -86,7 +88,7 @@ public async Task<List<OrderDetail>> GetCertificatesForSyncAsync(
8688
var to = DateTime.UtcNow;
8789

8890
results.AddRange(
89-
await GetCertificatesByDateRange(from, to)
91+
await GetModifiedOrdersByDateRange(from, to)
9092
);
9193
}
9294

@@ -126,17 +128,65 @@ private async Task<List<OrderDetail>> GetCertificatesByDateRange(DateTime? fromD
126128
else
127129
{
128130
int errCode = int.Parse(allOrdersResponse.Response.QueryResponseHeader.Errors[0].ErrorCode);
129-
Logger.LogError($"Unable to retrieve certificates:");
131+
StringBuilder sb = new StringBuilder();
132+
sb.Append($"Unable to retrieve certificates:");
130133
foreach (var e in allOrdersResponse.Response.QueryResponseHeader.Errors)
131134
{
132-
Logger.LogError($"{e.ErrorCode} | {e.ErrorField} | {e.ErrorMessage}");
135+
sb.Append($"\n{e.ErrorCode} | {e.ErrorField} | {e.ErrorMessage}");
133136
}
137+
Logger.LogError(sb.ToString());
134138
var gsError = GlobalSignErrorIndex.GetGlobalSignError(errCode);
135139
Logger.LogError(gsError.DetailedMessage);
136140
throw new Exception(gsError.Message);
137141
}
138142
}
139143

144+
private async Task<List<OrderDetail>> GetModifiedOrdersByDateRange(DateTime? fromDate, DateTime? toDate)
145+
{
146+
var tmpFromDate = fromDate ?? DateTime.MinValue;
147+
var tmpToDate = toDate ?? DateTime.UtcNow;
148+
149+
QbV1GetModifiedOrdersRequest req = new QbV1GetModifiedOrdersRequest
150+
{
151+
QueryRequestHeader = new QueryRequestHeader
152+
{
153+
AuthToken = Config.GetQueryAuthToken()
154+
},
155+
FromDate = tmpFromDate.ToString(Config.DateFormatString, DateTimeFormatInfo.InvariantInfo),
156+
ToDate = tmpToDate.ToString(Config.DateFormatString, DateTimeFormatInfo.InvariantInfo),
157+
OrderQueryOption = new OrderQueryOption
158+
{
159+
ReturnOrderOption = "true",
160+
ReturnCertificateInfo = "true",
161+
ReturnFulfillment = "true",
162+
ReturnOriginalCSR = "true"
163+
}
164+
};
165+
Logger.LogDebug($"Retrieving all modified orders between {tmpFromDate} and {tmpToDate}");
166+
var modOrdersResponse = await QueryService.GetModifiedOrdersAsync(new GetModifiedOrders(req));
167+
168+
if (modOrdersResponse.Response.QueryResponseHeader.SuccessCode == 0)
169+
{
170+
var retVal = modOrdersResponse.Response.OrderDetails?.ToList() ?? new List<OrderDetail>();
171+
Logger.LogDebug($"Retrieved {retVal.Count} modified orders from GlobalSign");
172+
return retVal;
173+
}
174+
else
175+
{
176+
int errCode = int.Parse(modOrdersResponse.Response.QueryResponseHeader.Errors[0].ErrorCode);
177+
StringBuilder sb = new StringBuilder();
178+
sb.Append("Unable to retrieve certificates:");
179+
foreach (var e in modOrdersResponse.Response.QueryResponseHeader.Errors)
180+
{
181+
sb.Append($"\n{e.ErrorCode} | {e.ErrorField} | {e.ErrorMessage}");
182+
}
183+
Logger.LogError(sb.ToString());
184+
var gsError = GlobalSignErrorIndex.GetGlobalSignError(errCode);
185+
Logger.LogError(gsError.DetailedMessage);
186+
throw new Exception(gsError.Message);
187+
}
188+
}
189+
140190
public async Task<AnyCAPluginCertificate> PickupCertificateById(string caRequestId)
141191
{
142192
Logger.MethodEntry();

0 commit comments

Comments
 (0)