TASK22269: normalize azurestorage hash query path builders

This commit is contained in:
2026-03-25 14:21:09 +00:00
parent 1b7e6009aa
commit fcce6a3978
2 changed files with 134 additions and 53 deletions
+97 -53
View File
@@ -31,6 +31,59 @@ const QUEUE_PATH = process.env.AZURE_PEDW_QUEUE_ENDPOINT;
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
const buildDownloadBlobQueryPath = ({
containerName,
casefolderID,
blobname,
encodeCasefolderID = true,
encodeBlobname = true
}) => {
const casefolderPart = encodeCasefolderID
? encodeURIComponent(casefolderID)
: casefolderID;
const blobPart = encodeBlobname ? encodeURIComponent(blobname) : blobname;
return (
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
casefolderPart +
"&blobname=" +
blobPart
);
};
const buildDeleteBlobQueryPath = ({
containerName,
casefolderID,
blobname,
encodeCasefolderID = true,
encodeBlobname = true
}) => {
const casefolderPart = encodeCasefolderID
? encodeURIComponent(casefolderID)
: casefolderID;
const blobPart = encodeBlobname ? encodeURIComponent(blobname) : blobname;
return (
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
casefolderPart +
"&blobname=" +
blobPart
);
};
const buildGetBlobListQueryPath = ({ containerName, casefolderID }) => {
return (
"/api/file/getbloblist?container=" +
containerName +
"&casefolderID=" +
casefolderID
);
};
export const createContainerSas = async (containerName) => {
// Get environment variables
@@ -214,12 +267,11 @@ export const getBlobs = async (containerName, casefolderID) => {
"&blobname=" +
encodeURIComponent(blob.name),
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(casefolderID) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[2])
buildDownloadBlobQueryPath({
containerName,
casefolderID,
blobname: blob.name.split("/")[2]
})
),
"deletepath":
"/api/file/deleteblob?container=" +
@@ -229,18 +281,17 @@ export const getBlobs = async (containerName, casefolderID) => {
"&blobname=" +
encodeURIComponent(blob.name.split("/")[2]),
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(casefolderID) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[2])
buildDeleteBlobQueryPath({
containerName,
casefolderID,
blobname: blob.name.split("/")[2]
})
),
"hashgetblobs": hashAPIPath(
"/api/file/getbloblist?container=" +
containerName +
"&casefolderID=" +
buildGetBlobListQueryPath({
containerName,
casefolderID
})
)
});
}
@@ -1246,26 +1297,24 @@ export const getProgressBlobs = async (containerName, caseReference) => {
"contentType": blob.contentType,
"lastModified": blob.properties.lastModified,
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(caseReference) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[1])
buildDownloadBlobQueryPath({
containerName,
casefolderID: caseReference,
blobname: blob.name.split("/")[1]
})
),
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(caseReference) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[1])
buildDeleteBlobQueryPath({
containerName,
casefolderID: caseReference,
blobname: blob.name.split("/")[1]
})
),
"hashgetblobs": hashAPIPath(
"/api/file/getbloblist?container=" +
containerName +
"&casefolderID=" +
caseReference
buildGetBlobListQueryPath({
containerName,
casefolderID: caseReference
})
)
});
}
@@ -1455,14 +1504,12 @@ export const getRepsFilesBlobs = async (
"&blobname=" +
encodeURIComponent(blob.name.split("/")[3]),
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(
blob.name.split("/")[0] + "/" + blob.name.split("/")[1]
) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[3])
buildDownloadBlobQueryPath({
containerName,
casefolderID:
blob.name.split("/")[0] + "/" + blob.name.split("/")[1],
blobname: blob.name.split("/")[3]
})
),
"deletepath":
"/api/file/deleteblob?container=" +
@@ -1474,22 +1521,19 @@ export const getRepsFilesBlobs = async (
"&blobname=" +
blob.name.split("/")[3],
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
encodeURIComponent(
blob.name.split("/")[0] + "/" + blob.name.split("/")[1]
) +
"&blobname=" +
encodeURIComponent(blob.name.split("/")[3])
buildDeleteBlobQueryPath({
containerName,
casefolderID:
blob.name.split("/")[0] + "/" + blob.name.split("/")[1],
blobname: blob.name.split("/")[3]
})
),
"hashgetblobs": hashAPIPath(
"/api/file/getbloblist?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1]
buildGetBlobListQueryPath({
containerName,
casefolderID:
blob.name.split("/")[0] + "/" + blob.name.split("/")[1]
})
)
});
}