Add Tenent Properties service route
This commit is contained in:
parent
ae9f0fae73
commit
037b001de6
@ -3,6 +3,7 @@ import config from "./config.js";
|
||||
import auth from "./auth.js";
|
||||
import interactionsFlows from "./interactions-flow.js";
|
||||
import udg from "./unified-data-gateway.js";
|
||||
import tps from "./tps.js";
|
||||
const router = Router();
|
||||
|
||||
import middlewares from "../middlewares/index.js";
|
||||
@ -13,5 +14,6 @@ router.use("/config", config);
|
||||
router.use("/auth", auth);
|
||||
router.use("/interactions-flow", interactionsFlows);
|
||||
router.use("/unified-data-gateway", udg);
|
||||
router.use("/tps", tps);
|
||||
|
||||
export default router;
|
||||
|
||||
54
src/api/routes/tps.js
Normal file
54
src/api/routes/tps.js
Normal file
@ -0,0 +1,54 @@
|
||||
import { Router } from "express";
|
||||
import axios from "axios";
|
||||
import { logger, store, isEmpty } from "../../utils/index.js";
|
||||
import createHttpError from "http-errors";
|
||||
|
||||
const router = Router();
|
||||
|
||||
router.get("/", async (req, res, next) => {
|
||||
const auth = await store.hGetAll(req.query.authKey);
|
||||
|
||||
if (isEmpty(auth)) {
|
||||
next(
|
||||
new createHttpError.Forbidden(
|
||||
`No authenication information found in store`
|
||||
)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const propertyName = req.query.propertyName;
|
||||
const { host, tenant, token } = auth;
|
||||
logger.debug(`tps GET ${propertyName} from ${host}`);
|
||||
axios
|
||||
.get(
|
||||
`${host}/tenant-properties-service/${tenant}/properties?q=${propertyName}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `OIDC_id_token ${token}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}
|
||||
)
|
||||
.then((result) => {
|
||||
if (result.data.errors && result.data.errors.length > 0) {
|
||||
result.data.errors.forEach(function (error) {
|
||||
logger.error("ERROR: Errors in results - " + error.message);
|
||||
});
|
||||
next(new Error("Error(s) getting propertyName " + propertyName));
|
||||
return;
|
||||
}
|
||||
const totalItems = result.data["hydra:totalItems"];
|
||||
logger.debug("tps result has hydra:totalItems [" + totalItems + "]");
|
||||
if (totalItems > 0) {
|
||||
const value = result.data["hydra:member"][0]["vcfg:value"];
|
||||
res.json({ data: { value: value } });
|
||||
} else {
|
||||
next(
|
||||
new createHttpError.NotFound(`property ${propertyName} not found`)
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
||||
@ -1,217 +0,0 @@
|
||||
import { logger } from "../utils/index.js";
|
||||
|
||||
export default function generate(filter) {
|
||||
filter = filter ? filter : "Channel, Sub-Channel, Queue, Outcome";
|
||||
logger.info(`Generating sample data for ${filter}`);
|
||||
|
||||
var data = {
|
||||
nodes: [],
|
||||
links: [],
|
||||
};
|
||||
|
||||
const channels = ["Email", "Messaging", "Legacy Live Chat"];
|
||||
const subChannels = [
|
||||
"Live Chat",
|
||||
"Facebook Messenger",
|
||||
"Twitter DM",
|
||||
"WhatsApp",
|
||||
"Other",
|
||||
];
|
||||
const queues = ["General Enquiries", "Complaints", "Default"];
|
||||
const outcomes = [
|
||||
"No need for response",
|
||||
"Case Updated",
|
||||
"Escalated to Manager",
|
||||
];
|
||||
|
||||
if (filter.includes("Channel")) {
|
||||
channels.forEach((value) => {
|
||||
data.nodes.push({
|
||||
name: value,
|
||||
category: "Channel",
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (filter.includes("Sub-Channel")) {
|
||||
subChannels.forEach((value) => {
|
||||
data.nodes.push({
|
||||
name: value,
|
||||
category: "Sub-Channel",
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (filter.includes("Queue")) {
|
||||
queues.forEach((value) => {
|
||||
data.nodes.push({
|
||||
name: value,
|
||||
category: "Queue",
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
if (filter.includes("Outcome")) {
|
||||
outcomes.forEach((value) => {
|
||||
data.nodes.push({
|
||||
name: value,
|
||||
category: "Outcome",
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
data.links.push(
|
||||
{
|
||||
source: "Email",
|
||||
target: "Default",
|
||||
value: 342,
|
||||
},
|
||||
{
|
||||
source: "Messaging",
|
||||
target: "Live Chat",
|
||||
value: 232,
|
||||
},
|
||||
{
|
||||
source: "Messaging",
|
||||
target: "Facebook Messenger",
|
||||
value: 623,
|
||||
},
|
||||
{
|
||||
source: "Messaging",
|
||||
target: "Twitter DM",
|
||||
value: 434,
|
||||
},
|
||||
{
|
||||
source: "Messaging",
|
||||
target: "WhatsApp",
|
||||
value: 1243,
|
||||
},
|
||||
{
|
||||
source: "Messaging",
|
||||
target: "Other",
|
||||
value: 150,
|
||||
},
|
||||
{
|
||||
source: "Live Chat",
|
||||
target: "Default",
|
||||
value: 132,
|
||||
},
|
||||
{
|
||||
source: "Live Chat",
|
||||
target: "Complaints",
|
||||
value: 90,
|
||||
},
|
||||
{
|
||||
source: "Live Chat",
|
||||
target: "General Enquires",
|
||||
value: 42,
|
||||
},
|
||||
{
|
||||
source: "WhatsApp",
|
||||
target: "Default",
|
||||
value: 343,
|
||||
},
|
||||
{
|
||||
source: "WhatsApp",
|
||||
target: "Complaints",
|
||||
value: 300,
|
||||
},
|
||||
{
|
||||
source: "WhatsApp",
|
||||
target: "General Enquires",
|
||||
value: 523,
|
||||
},
|
||||
{
|
||||
source: "Facebook Messenger",
|
||||
target: "Default",
|
||||
value: 143,
|
||||
},
|
||||
{
|
||||
source: "Facebook Messenger",
|
||||
target: "Complaints",
|
||||
value: 200,
|
||||
},
|
||||
{
|
||||
source: "Facebook Messenger",
|
||||
target: "General Enquires",
|
||||
value: 323,
|
||||
},
|
||||
{
|
||||
source: "Twitter DM",
|
||||
target: "Default",
|
||||
value: 143,
|
||||
},
|
||||
{
|
||||
source: "Twitter DM",
|
||||
target: "Complaints",
|
||||
value: 50,
|
||||
},
|
||||
{
|
||||
source: "Twitter DM",
|
||||
target: "General Enquires",
|
||||
value: 223,
|
||||
},
|
||||
{
|
||||
source: "General Enquires",
|
||||
target: "Case Closed",
|
||||
value: 421,
|
||||
},
|
||||
{
|
||||
source: "General Enquires",
|
||||
target: "Completed",
|
||||
value: 612,
|
||||
},
|
||||
{
|
||||
source: "General Enquires",
|
||||
target: "Escalated to Manager",
|
||||
value: 23,
|
||||
},
|
||||
{
|
||||
source: "General Enquires",
|
||||
target: "No need for response",
|
||||
value: 241,
|
||||
},
|
||||
{
|
||||
source: "Complaints",
|
||||
target: "Case Closed",
|
||||
value: 21,
|
||||
},
|
||||
{
|
||||
source: "Complaints",
|
||||
target: "Completed",
|
||||
value: 12,
|
||||
},
|
||||
{
|
||||
source: "Complaints",
|
||||
target: "Escalated to Manager",
|
||||
value: 3,
|
||||
},
|
||||
{
|
||||
source: "Complaints",
|
||||
target: "No need for response",
|
||||
value: 41,
|
||||
},
|
||||
{
|
||||
source: "Default",
|
||||
target: "Completed",
|
||||
value: 41,
|
||||
},
|
||||
{
|
||||
source: "Default",
|
||||
target: "Case Updated",
|
||||
value: 410,
|
||||
},
|
||||
{
|
||||
source: "General Enquires",
|
||||
target: "Case Updated",
|
||||
value: 50,
|
||||
},
|
||||
{
|
||||
source: "Complaints",
|
||||
target: "Case Updated",
|
||||
value: 410,
|
||||
}
|
||||
);
|
||||
|
||||
return data;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user