Skip to content

Commit

Permalink
Added initial implementation for readMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
basiliskus committed Dec 6, 2023
1 parent 774a024 commit 02abe0d
Showing 1 changed file with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@
import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataException;
import gov.hhs.cdc.trustedintermediary.etor.metadata.PartnerMetadataStorage;
import gov.hhs.cdc.trustedintermediary.wrappers.Logger;
import gov.hhs.cdc.trustedintermediary.wrappers.formatter.Formatter;
import gov.hhs.cdc.trustedintermediary.wrappers.formatter.FormatterProcessingException;
import gov.hhs.cdc.trustedintermediary.wrappers.formatter.TypeReference;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
import javax.inject.Inject;

Expand All @@ -31,6 +35,7 @@ public class AzureStorageAccountPartnerMetadataStorage implements PartnerMetadat
private static final AzureStorageAccountPartnerMetadataStorage INSTANCE =
new AzureStorageAccountPartnerMetadataStorage();

@Inject Formatter formatter;
@Inject Logger logger;

private AzureStorageAccountPartnerMetadataStorage() {}
Expand All @@ -40,16 +45,27 @@ public static AzureStorageAccountPartnerMetadataStorage getInstance() {
}

@Override
public PartnerMetadata readMetadata(final String uniqueId) {
return null;
public PartnerMetadata readMetadata(final String uniqueId) throws PartnerMetadataException {
String metadataFileName = uniqueId + ".json";
try {
logger.logDebug("Downloading " + metadataFileName);
BlobClient blobClient = CONTAINER_CLIENT.getBlobClient(metadataFileName);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
blobClient.downloadStream(outputStream);
String content = outputStream.toString(StandardCharsets.UTF_8);
logger.logDebug("Downloaded metadata: " + content);
return formatter.convertJsonToObject(content, new TypeReference<>() {});
} catch (AzureException | FormatterProcessingException e) {
throw new PartnerMetadataException("Unable to download " + metadataFileName, e);
}
}

@Override
public void saveMetadata(final PartnerMetadata metadata) throws PartnerMetadataException {
String metadataFileName = metadata.uniqueId() + ".json";
try {
BlobClient blobClient = CONTAINER_CLIENT.getBlobClient(metadataFileName);
String content = "serialize(metadata)";
String content = formatter.convertToJsonString(metadata);
ByteArrayInputStream inputStream =
new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));
blobClient.upload(inputStream, content.length(), true);
Expand All @@ -62,7 +78,7 @@ public void saveMetadata(final PartnerMetadata metadata) throws PartnerMetadataE
+ STORAGE_ACCOUNT_BLOB_ENDPOINT
+ " Azure storage account"
+ blobClient.getBlobUrl());
} catch (AzureException e) {
} catch (AzureException | FormatterProcessingException e) {
throw new PartnerMetadataException(
"Failed to upload "
+ metadataFileName
Expand Down

0 comments on commit 02abe0d

Please sign in to comment.