in services/inspector-app/src/main/java/com/google/cloud/pso/bq_pii_classifier/inspector/InspectorController.java [65:116]
public ResponseEntity receiveMessage(@RequestBody PubSubEvent requestBody) {
String trackingId = "0000000000000-z";
DlpService dlpService = null;
BigQueryService bqService = null;
try {
if (requestBody == null || requestBody.getMessage() == null) {
String msg = "Bad Request: invalid message format";
logger.logSevereWithTracker(trackingId, msg);
throw new NonRetryableApplicationException("Request body or message is Null.");
}
String requestJsonString = requestBody.getMessage().dataToUtf8String();
// remove any escape characters (e.g. from Terraform
requestJsonString = requestJsonString.replace("\\", "");
logger.logInfoWithTracker(trackingId, String.format("Received payload: %s", requestJsonString));
InspectorRequest inspectorRequest = gson.fromJson(requestJsonString, InspectorRequest.class);
trackingId = inspectorRequest.getTrackingId();
logger.logInfoWithTracker(trackingId, String.format("Parsed Request: %s", inspectorRequest.toString()));
dlpService = new DlpServiceImpl();
bqService = new BigQueryServiceImpl();
Inspector inspector = new Inspector(
environment.toConfig(),
dlpService,
bqService,
new GCSPersistentSetImpl(environment.getGcsFlagsBucket()),
"inspector-flags"
);
inspector.execute(inspectorRequest, trackingId, requestBody.getMessage().getMessageId());
return new ResponseEntity("Process completed successfully.", HttpStatus.OK);
}
catch (Exception e ){
return ControllerExceptionHelper.handleException(e, logger, trackingId);
}finally {
if (dlpService != null){
dlpService.shutDown();
}
}
}