import { getMetric } from '../api/autonomousManagement';
const formatTimestamp = function (data, fmt) {
if (!data) return "";
let timeStr = new Date(parseInt(data));
fmt = fmt || "yyyy-MM-dd hh:mm:ss";
let o = {
"M+": timeStr.getMonth() + 1,
"d+": timeStr.getDate(),
"h+": timeStr.getHours(),
"m+": timeStr.getMinutes(),
"s+": timeStr.getSeconds(),
"q+": Math.floor((timeStr.getMonth() + 3) / 3),
S: timeStr.getMilliseconds(),
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(
RegExp.$1,
(timeStr.getFullYear() + "").substr(4 - RegExp.$1.length)
);
for (let k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
);
return fmt;
};
const formatTableTitle = function (title) {
let titleName = title.replace(/_/g, " ");
if (title.indexOf("sql") !== -1) {
titleName = titleName.replace("sql", "SQL");
} else if (title.indexOf("db") !== -1) {
titleName = titleName.replace("db", "DB");
}
return titleName;
};
const formatTableTitleToUpper = function (title) {
let titleName = title.replace(/_/g, " ");
let arr = titleName.split(" ");
arr.forEach((e, i) => {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1);
});
return arr.join(" ");
};
const formatSecond = function (second) {
const days = Math.floor(second / 86400);
const hours = Math.floor((second % 86400) / 3600);
return days + "d" + hours + "h";
};
const formatTableTime = function (data) {
data.forEach((item) => {
Object.keys(item).forEach(function (key) {
if (key === "query_start" && item["query_start"]) {
item[key] = item[key].substring(0, item[key].indexOf("."));
} else if (key === "last_updated" && item["last_updated"]) {
item[key] = item[key].substring(0, item[key].indexOf("."));
} else if (key === "backend_start" && item["backend_start"]) {
item[key] = item[key].substring(0, item[key].indexOf("."));
} else if (key === "xact_start" && item["xact_start"]) {
item[key] = item[key].substring(0, item[key].indexOf("."));
} else if (!item[key]) {
item[key] = "";
} else if (
key.indexOf("time") !== -1 ||
key.indexOf("start") !== -1 ||
key.indexOf("end") !== -1
) {
if (
key !== "node_time" &&
key !== "db_time" &&
key !== "node_timestamp"
) {
item[key] = formatSecond(item[key]);
}
}
});
});
return data;
};
const capitalizeFirst = function (str) {
let data = str.charAt(0).toUpperCase() + str.slice(1);
return data;
};
const commonMetricMethod = async function (publicParam,privateParam,interfaceName=''){
let params = Object.assign(publicParam,privateParam)
const { success, data, msg }= await (interfaceName ? interfaceName(params) : getMetric(params))
if (success) {
return data
} else {
message.error(msg)
}
}
export {
formatTimestamp,
formatTableTitle,
formatSecond,
formatTableTime,
formatTableTitleToUpper,
capitalizeFirst,
commonMetricMethod
};