public IndexFacesResponse handleRequest()

in java-app-backend/BackendFunction/src/main/java/com/webapp/function/IndexImageHandler.java [41:71]


    public IndexFacesResponse handleRequest(S3EventNotification input, Context context) {
        String bucketName = input.getRecords().get(0).getS3().getBucket().getName();
        String bucketKey = input.getRecords().get(0).getS3().getObject().getUrlDecodedKey();

        try {
            IndexFacesResponse indexFacesResponse = indexFaces(bucketName, bucketKey);
            LOG.debug("Response from service after indexing {}", indexFacesResponse);

            if (indexFacesResponse.sdkHttpResponse().isSuccessful()) {
                String faceId = indexFacesResponse.faceRecords().get(0).face().faceId();

                HeadObjectResponse headObjectResponse = s3Client.headObject(HeadObjectRequest.builder()
                        .bucket(bucketName)
                        .key(bucketKey)
                        .build());

                String fullname = headObjectResponse.metadata().getOrDefault("fullname", "");

                putMetadata("full_name", fullname);
                putAnnotation("full_name", fullname);

                updateIndexDetails(faceId, fullname);
            }

            return indexFacesResponse;
        } catch (Exception e) {
            LOG.error("Failed indexing uploaded image from bucket {} with key {}", bucketName, bucketKey, e);
            throw e;
        }

    }