public ResponseEntity receiveMessage()

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);
        }
    }