public ResponseEntity receiveMessage()

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