added in message queue for applications and reps
This commit is contained in:
+136
-13
@@ -1,4 +1,6 @@
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
import { DefaultAzureCredential } from "@azure/identity";
|
||||
import _ from "lodash";
|
||||
import { hashAPIPath } from ".";
|
||||
const {
|
||||
ContainerClient,
|
||||
BlockBlobClient,
|
||||
@@ -6,13 +8,25 @@ const {
|
||||
BlobSASPermissions,
|
||||
ContainerSASPermissions,
|
||||
generateBlobSASQueryParameters,
|
||||
|
||||
SASProtocol,
|
||||
} = require("@azure/storage-blob");
|
||||
import { DefaultAzureCredential } from "@azure/identity";
|
||||
import { consoleLogger, conLog, hashAPIPath } from ".";
|
||||
import _ from "lodash";
|
||||
const {
|
||||
QueueServiceClient,
|
||||
AccountSASResourceTypes,
|
||||
AccountSASServices,
|
||||
AccountSASPermissions,
|
||||
QueueSASPermissions,
|
||||
QueueSASSignatureValues,
|
||||
generateAccountSASQueryParameters,
|
||||
generateQueueSASQueryParameters,
|
||||
StorageSharedKeyCredential,
|
||||
QueueClient,
|
||||
} = require("@azure/storage-queue");
|
||||
const STORAGE_PATH = process.env.AZURE_PEDW_STORAGE_ENDPOINT;
|
||||
const STORAGE_CONTAINER = process.env.AZURE_PEDW_CONTAINER;
|
||||
const QUEUE_PATH = process.env.AZURE_PEDW_QUEUE_ENDPOINT;
|
||||
|
||||
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
|
||||
|
||||
export const createContainerSas = async (containerName) => {
|
||||
@@ -611,8 +625,6 @@ export const getProgressBlobs = async (containerName, caseReference) => {
|
||||
},
|
||||
]).reverse()[0];
|
||||
|
||||
//console.log("blobObjwwwww:", blobObj);
|
||||
|
||||
return blobObj;
|
||||
};
|
||||
|
||||
@@ -675,13 +687,124 @@ export const getRepslobs = async (containerName, caseReference) => {
|
||||
blobObj.push(blob);
|
||||
}
|
||||
|
||||
// blobObj = _.sortBy(blobObj, [
|
||||
// function (o) {
|
||||
// return o.lastModified;
|
||||
// },
|
||||
// ]).reverse()[0];
|
||||
|
||||
console.log("blobObjwwwww:", blobObj);
|
||||
//console.log("blobObjwwwww:", blobObj);
|
||||
|
||||
return blobObj;
|
||||
};
|
||||
|
||||
export const createQueueSas = async (queueName) => {
|
||||
// Get environment variables
|
||||
const account = process.env.AZURE_STORAGE_ACCOUNT_NAME;
|
||||
const accountKey = process.env.AZURE_STORAGE_ACCOUNT_KEY;
|
||||
|
||||
const sharedKeyCredential = new StorageSharedKeyCredential(
|
||||
account,
|
||||
accountKey
|
||||
);
|
||||
|
||||
// Best practice: create time limits
|
||||
const TEN_MINUTES = 10 * 60 * 1000;
|
||||
const NOW = new Date();
|
||||
|
||||
// Best practice: set start time a little before current time to
|
||||
// make sure any clock issues are avoided
|
||||
const TEN_MINUTES_AFTER_NOW = new Date(NOW.valueOf() + TEN_MINUTES);
|
||||
|
||||
var resource_types = new AccountSASResourceTypes();
|
||||
resource_types.container = true;
|
||||
resource_types.object = true;
|
||||
resource_types.service = true;
|
||||
|
||||
var permission = new QueueSASPermissions();
|
||||
permission.read = true;
|
||||
permission.write = true;
|
||||
permission.delete = true;
|
||||
permission.list = true;
|
||||
permission.add = true;
|
||||
permission.update = true;
|
||||
permission.process = true;
|
||||
|
||||
var sas_signature_val = {
|
||||
expiresOn: TEN_MINUTES_AFTER_NOW,
|
||||
permissions: permission,
|
||||
queueName: queueName,
|
||||
};
|
||||
|
||||
const sasToken = generateQueueSASQueryParameters(
|
||||
sas_signature_val,
|
||||
sharedKeyCredential
|
||||
);
|
||||
//console.log("sass token:", sasToken);
|
||||
|
||||
return sasToken.toString();
|
||||
};
|
||||
|
||||
export const createCaseCompleteMessage = async (
|
||||
containerName,
|
||||
caseReference
|
||||
) => {
|
||||
const whichQueue = "pedw-submitted-applications";
|
||||
const queueToken = await createQueueSas(whichQueue);
|
||||
|
||||
const sasUrl = `${QUEUE_PATH}?${queueToken}`;
|
||||
const queueServiceClient = new QueueServiceClient(sasUrl);
|
||||
|
||||
const message = {
|
||||
containerName: containerName,
|
||||
casepath:
|
||||
containerName +
|
||||
"/" +
|
||||
caseReference +
|
||||
"/" +
|
||||
caseReference +
|
||||
"_appeal.json",
|
||||
casecontentpath: containerName + "/" + caseReference + "/case",
|
||||
filespath: containerName + "/" + caseReference + "/files",
|
||||
|
||||
// uploadUrl: fileRecord.uploadUrl,
|
||||
// filename: fileRecord.file.name,
|
||||
// fileSize: fileRecord.file.size,
|
||||
};
|
||||
|
||||
const sendMessageResponse = await queueServiceClient
|
||||
.getQueueClient(whichQueue)
|
||||
.sendMessage(
|
||||
JSON.stringify(
|
||||
`<QueueMessage><MessageText>${JSON.stringify(
|
||||
message
|
||||
)}</MessageText></QueueMessage>`
|
||||
)
|
||||
);
|
||||
|
||||
return sendMessageResponse;
|
||||
};
|
||||
|
||||
export const createRepCompleteMessage = async (
|
||||
containerName,
|
||||
caseReference
|
||||
) => {
|
||||
const whichQueue = "pedw-submitted-representations";
|
||||
const queueToken = await createQueueSas(whichQueue);
|
||||
|
||||
const sasUrl = `${QUEUE_PATH}?${queueToken}`;
|
||||
const queueServiceClient = new QueueServiceClient(sasUrl);
|
||||
|
||||
const message = {
|
||||
containerName: containerName,
|
||||
caseref: caseReference,
|
||||
reppath: containerName + "/" + caseReference + "/",
|
||||
filespath: containerName + "/" + caseReference + "/files",
|
||||
};
|
||||
|
||||
const sendMessageResponse = await queueServiceClient
|
||||
.getQueueClient(whichQueue)
|
||||
.sendMessage(
|
||||
JSON.stringify(
|
||||
`<QueueMessage><MessageText>${JSON.stringify(
|
||||
message
|
||||
)}</MessageText></QueueMessage>`
|
||||
)
|
||||
);
|
||||
|
||||
return sendMessageResponse;
|
||||
};
|
||||
|
||||
@@ -1491,3 +1491,49 @@ export const getPortalLogin = (emailAddress) => {
|
||||
return JSON.stringify(error);
|
||||
});
|
||||
};
|
||||
|
||||
export const sendCaseCompleteMessage = async (containerID, caseReference) => {
|
||||
var queryUrl =
|
||||
"/api/file/createappealcompletemessage_api?container=" +
|
||||
containerID +
|
||||
"&tempcaseref=" +
|
||||
caseReference;
|
||||
|
||||
var config = {
|
||||
method: "get",
|
||||
url: queryUrl,
|
||||
};
|
||||
|
||||
//console.log(data);
|
||||
|
||||
return axios(config)
|
||||
.then((res) => {
|
||||
return res.data;
|
||||
})
|
||||
.catch((error) => {
|
||||
//console.log("API call error", error);
|
||||
});
|
||||
};
|
||||
|
||||
export const sendRepCompleteMessage = async (containerID, caseReference) => {
|
||||
var queryUrl =
|
||||
"/api/file/createrepcompletemessage_api?container=" +
|
||||
containerID +
|
||||
"&tempcaseref=" +
|
||||
caseReference;
|
||||
|
||||
var config = {
|
||||
method: "get",
|
||||
url: queryUrl,
|
||||
};
|
||||
|
||||
//console.log(data);
|
||||
|
||||
return axios(config)
|
||||
.then((res) => {
|
||||
return res.data;
|
||||
})
|
||||
.catch((error) => {
|
||||
//console.log("API call error", error);
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user