Skip to content

Commit e80e457

Browse files
committed
Debugging Audit Interceptor
1 parent c2e600f commit e80e457

1 file changed

Lines changed: 25 additions & 16 deletions

File tree

src/main/kotlin/uk/nhs/england/fhirvalidator/interceptor/AWSAuditEventLoggingInterceptor.kt

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import ca.uhn.fhir.rest.api.Constants
88
import ca.uhn.fhir.rest.api.EncodingEnum
99
import ca.uhn.fhir.rest.api.server.RequestDetails
1010
import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException
11+
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException
1112
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails
1213
import com.amazonaws.services.sqs.AmazonSQS
1314
import com.amazonaws.services.sqs.model.SendMessageRequest
@@ -59,25 +60,33 @@ class AWSAuditEventLoggingInterceptor(
5960
contentType = contentType.trim { it <= ' ' }
6061
val encoding = EncodingEnum.forContentType(contentType)
6162
if (encoding != null) {
62-
val requestContents = theRequestDetails.loadRequestContents()
63-
fhirResource = String(requestContents, Constants.CHARSET_UTF8)
64-
if (!fhirResource.isEmpty()) {
65-
try {
66-
var baseResource : IBaseResource? = null
63+
try {
64+
65+
val requestContents = theRequestDetails.loadRequestContents()
66+
fhirResource = String(requestContents, Constants.CHARSET_UTF8)
67+
if (!fhirResource.isEmpty()) {
6768
try {
68-
baseResource = ctx.newJsonParser().parseResource(fhirResource)
69-
} catch (ex : Exception) {
70-
baseResource = ctx.newXmlParser().parseResource(fhirResource)
71-
}
72-
if (baseResource is QuestionnaireResponse) {
73-
patientId = baseResource.subject.reference
69+
var baseResource: IBaseResource? = null
70+
try {
71+
baseResource = ctx.newJsonParser().parseResource(fhirResource)
72+
} catch (ex: Exception) {
73+
baseResource = ctx.newXmlParser().parseResource(fhirResource)
74+
}
75+
if (baseResource is QuestionnaireResponse) {
76+
patientId = baseResource.subject.reference
77+
}
78+
} catch (ex: Exception) {
79+
val auditEvent =
80+
createAudit(theRequestDetails.servletRequest, fhirResourceName, patientId, fhirResource)
81+
addAWSOutComeException(auditEvent, ex)
82+
// throw UnprocessableEntityException(ex.message)
7483
}
75-
} catch(ex: Exception) {
76-
val auditEvent =
77-
createAudit(theRequestDetails.servletRequest, fhirResourceName, patientId, fhirResource)
78-
addAWSOutComeException(auditEvent, ex)
79-
// throw UnprocessableEntityException(ex.message)
8084
}
85+
} catch (io: InvalidRequestException) {
86+
System.out.println("Issue Processing - " + theRequestDetails.requestPath)
87+
}
88+
catch (io: IOException) {
89+
System.out.println("Issue Processing - " + theRequestDetails.requestPath)
8190
}
8291
}
8392
}

0 commit comments

Comments
 (0)