in services/tagger-app/src/main/java/com/google/cloud/pso/bq_pii_classifier/tagger/TaggerController.java [68:125]
public ResponseEntity receiveMessage(@RequestBody PubSubEvent requestBody) {
String defaultTrackingId = "0000000000000-z";
Operation taggerRequest = null;
try {
if (requestBody == null || requestBody.getMessage() == null) {
String msg = "Bad Request: invalid message format";
logger.logSevereWithTracker(defaultTrackingId, msg);
throw new NonRetryableApplicationException("Request body or message is Null.");
}
taggerRequest = parseEvent(requestBody);
BigQueryService bigQueryService = new BigQueryServiceImpl();
// determine the Type of DLP FindingsReader based on env
FindingsReader findingsReader = FindingsReaderFactory.getNewReader(
FindingsReaderFactory.findReader(
environment.getIsAutoDlpMode(),
environment.getPromoteMixedTypes()
),
bigQueryService,
environment.getProjectId(),
environment.getDlpDataset(),
environment.getIsAutoDlpMode() ? environment.getDlpTableAuto() : environment.getDlpTableStandard(),
environment.getConfigViewDatasetDomainMap(),
environment.getConfigViewProjectDomainMap(),
environment.getConfigViewInfoTypePolicyTagsMap()
);
Tagger tagger = new Tagger(
environment.toConfig(),
bigQueryService,
findingsReader,
new GCSPersistentSetImpl(environment.getGcsFlagsBucket()),
"tagger-flags"
);
if (taggerRequest instanceof TaggerTableSpecRequest) {
TaggerTableSpecRequest taggerTableSpecRequest = (TaggerTableSpecRequest) taggerRequest;
tagger.execute(taggerTableSpecRequest, requestBody.getMessage().getMessageId());
} else {
if (taggerRequest instanceof TaggerDlpJobRequest) {
TaggerDlpJobRequest taggerDlpJobRequest = (TaggerDlpJobRequest) taggerRequest;
tagger.execute(taggerDlpJobRequest, requestBody.getMessage().getMessageId());
}
}
return new ResponseEntity("Process completed successfully.", HttpStatus.OK);
} catch (Exception e) {
String trackingId = taggerRequest == null ? defaultTrackingId : taggerRequest.getTrackingId();
return ControllerExceptionHelper.handleException(e, logger, trackingId);
}
}