Skip to content

Commit e172c21

Browse files
CDMS-854: adds message type to logs (#138)
* CDMS-854: adds message type to logs * CDMS-854: sonar * CDMS-854: sonar * CDMS-854: sonar * CDMS-854: sonar * CDMS-854: added tests for checking message type return value * CDMS-854: added tests for checking message type return value * CDMS-854: sonar
1 parent 34c8486 commit e172c21

File tree

4 files changed

+71
-7
lines changed

4 files changed

+71
-7
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using BtmsGateway.Domain;
2+
using FluentAssertions;
3+
4+
namespace BtmsGateway.Test.Domain;
5+
6+
public class MessagingConstantsTests
7+
{
8+
[Theory]
9+
[InlineData(null)]
10+
[InlineData("")]
11+
[InlineData(" ")]
12+
[InlineData("FOO")]
13+
public void When_soap_message_type_is_null_Then_message_type_is_unknown(string soapMessageType)
14+
{
15+
MessagingConstants.MessageTypes.FromSoapMessageType(soapMessageType).Should().Be("UnknownMessageType");
16+
}
17+
}

BtmsGateway/Domain/MessagingConstants.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,46 @@ public static class MessageTypes
1414
public const string ClearanceRequest = "ClearanceRequest";
1515
public const string Finalisation = "Finalisation";
1616
public const string InboundError = "InboundError";
17+
public const string DecisionNotification = "DecisionNotification";
18+
public const string HMRCErrorNotification = "HMRCErrorNotification";
19+
public const string ALVSIPAFFSClearanceRequest = "ALVSIPAFFSClearanceRequest";
20+
public const string ALVSIPAFFSFinalisationNotificationRequest = "ALVSIPAFFSFinalisationNotificationRequest";
21+
public const string ALVSIPAFFSSearchCertificateRequest = "ALVSIPAFFSSearchCertificateRequest";
22+
public const string ALVSIPAFFSPollCertificateRequest = "ALVSIPAFFSPollCertificateRequest";
23+
public const string ALVSIPAFFSDecisionNotification = "ALVSIPAFFSDecisionNotification";
24+
25+
public static string FromSoapMessageType(string? soapMessageType)
26+
{
27+
return soapMessageType switch
28+
{
29+
SoapMessageTypes.ALVSClearanceRequest => ClearanceRequest,
30+
SoapMessageTypes.FinalisationNotificationRequest => Finalisation,
31+
SoapMessageTypes.ALVSErrorNotificationRequest => InboundError,
32+
SoapMessageTypes.DecisionNotification => DecisionNotification,
33+
SoapMessageTypes.HMRCErrorNotification => HMRCErrorNotification,
34+
SoapMessageTypes.ALVSIPAFFSClearanceRequest => ALVSIPAFFSClearanceRequest,
35+
SoapMessageTypes.ALVSIPAFFSFinalisationNotificationRequest => ALVSIPAFFSFinalisationNotificationRequest,
36+
SoapMessageTypes.ALVSIPAFFSSearchCertificateRequest => ALVSIPAFFSSearchCertificateRequest,
37+
SoapMessageTypes.ALVSIPAFFSPollCertificateRequest => ALVSIPAFFSPollCertificateRequest,
38+
SoapMessageTypes.ALVSIPAFFSDecisionNotification => ALVSIPAFFSDecisionNotification,
39+
_ => "UnknownMessageType",
40+
};
41+
}
1742
}
1843

1944
public static class SoapMessageTypes
2045
{
2146
public const string ALVSClearanceRequest = "ALVSClearanceRequest";
2247
public const string FinalisationNotificationRequest = "FinalisationNotificationRequest";
2348
public const string ALVSErrorNotificationRequest = "ALVSErrorNotificationRequest";
49+
public const string DecisionNotification = "DecisionNotification/DecisionNotification";
50+
public const string HMRCErrorNotification = "HMRCErrorNotification/HMRCErrorNotification";
51+
public const string ALVSIPAFFSClearanceRequest = "ALVSClearanceRequestPost/ALVSClearanceRequest";
52+
public const string ALVSIPAFFSFinalisationNotificationRequest =
53+
"FinalisationNotificationRequestPost/FinalisationNotificationRequest";
54+
public const string ALVSIPAFFSSearchCertificateRequest = "CertificateRequest/Request";
55+
public const string ALVSIPAFFSPollCertificateRequest = "CertificatePoll/RequestIdentifier";
56+
public const string ALVSIPAFFSDecisionNotification = "DecisionNotificationRequestPost/DecisionNotification";
2457
}
2558

2659
public enum MessageSource

BtmsGateway/Middleware/RoutingInterceptor.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using BtmsGateway.Config;
2+
using BtmsGateway.Domain;
23
using BtmsGateway.Exceptions;
34
using BtmsGateway.Services.Metrics;
45
using BtmsGateway.Services.Routing;
@@ -106,12 +107,13 @@ private void LogRouteFoundResults(MessageData messageData, RoutingResult routing
106107
if (routingResult.RoutingSuccessful)
107108
{
108109
logger.Information(
109-
"{ContentCorrelationId} {MessageReference} {Action} {Success} for route {RouteUrl} with response {StatusCode} \"{Content}\"",
110+
"{ContentCorrelationId} {MessageReference} {Action} {Success} for route {RouteUrl}, message type {MessageType} with response {StatusCode} \"{Content}\"",
110111
messageData.ContentMap.CorrelationId,
111112
messageData.ContentMap.MessageReference,
112113
action,
113114
"successful",
114115
action == RouteAction ? routingResult.FullRouteLink : routingResult.FullForkLink,
116+
MessagingConstants.MessageTypes.FromSoapMessageType(routingResult.MessageSubXPath),
115117
routingResult.StatusCode,
116118
routingResult.ResponseContent
117119
);
@@ -127,12 +129,13 @@ private void LogRouteFoundResults(MessageData messageData, RoutingResult routing
127129
}
128130

129131
logger.Error(
130-
"{ContentCorrelationId} {MessageReference} {Action} {Success} for route {RouteUrl} with response {StatusCode} \"{Content}\"",
132+
"{ContentCorrelationId} {MessageReference} {Action} {Success} for route {RouteUrl}, message type {MessageType} with response {StatusCode} \"{Content}\"",
131133
messageData.ContentMap.CorrelationId,
132134
messageData.ContentMap.MessageReference,
133135
action,
134136
"failed",
135137
action == RouteAction ? routingResult.FullRouteLink : routingResult.FullForkLink,
138+
MessagingConstants.MessageTypes.FromSoapMessageType(routingResult.MessageSubXPath),
136139
routingResult.StatusCode,
137140
routingResult.ResponseContent
138141
);

BtmsGateway/Services/Routing/MessageRouter.cs

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public async Task<RoutingResult> Route(MessageData messageData, IMetrics metrics
5858
}
5959
catch (Exception ex)
6060
{
61-
LogError(ex, messageData, "routing");
61+
LogRoutingError(ex, messageData, routingResult);
6262
return routingResult with
6363
{
6464
StatusCode = HttpStatusCode.ServiceUnavailable,
@@ -108,7 +108,7 @@ public async Task<RoutingResult> Fork(MessageData messageData, IMetrics metrics)
108108
}
109109
catch (Exception ex)
110110
{
111-
LogError(ex, messageData, "forking");
111+
LogForkingError(ex, messageData, routingResult);
112112
return routingResult with
113113
{
114114
StatusCode = HttpStatusCode.ServiceUnavailable,
@@ -121,14 +121,25 @@ public async Task<RoutingResult> Fork(MessageData messageData, IMetrics metrics)
121121
}
122122
}
123123

124-
private void LogError(Exception? ex, MessageData messageData, string action)
124+
private void LogRoutingError(Exception? ex, MessageData messageData, RoutingResult routingResult)
125+
{
126+
LogError(ex, messageData, "routing", routingResult);
127+
}
128+
129+
private void LogForkingError(Exception? ex, MessageData messageData, RoutingResult routingResult)
130+
{
131+
LogError(ex, messageData, "forking", routingResult);
132+
}
133+
134+
private void LogError(Exception? ex, MessageData messageData, string action, RoutingResult routingResult)
125135
{
126136
logger.Error(
127137
ex,
128-
"{ContentCorrelationId} {MessageReference} Error {action}",
138+
"{ContentCorrelationId} {MessageReference} Error {Action} message type {MessageType}",
129139
messageData.ContentMap.CorrelationId,
130140
messageData.ContentMap.MessageReference,
131-
action
141+
action,
142+
MessagingConstants.MessageTypes.FromSoapMessageType(routingResult.MessageSubXPath)
132143
);
133144
}
134145

0 commit comments

Comments
 (0)