@@ -6,26 +6,37 @@ const calculateStatusDuration = (transitions) => {
|
||||
let statusDuration = {};
|
||||
|
||||
transitions.forEach((transition, index) => {
|
||||
let duration = transition.duration;
|
||||
let duration = transition.duration_minutes;
|
||||
|
||||
// If there is no prev_value, it is the first transition
|
||||
if (!transition.prev_value) {
|
||||
statusDuration[transition.value] = duration;
|
||||
statusDuration[transition.value] = {
|
||||
value: duration,
|
||||
humanReadable: transition.duration_readable
|
||||
};
|
||||
}
|
||||
// If there is no next_value, it is the last transition (the active one)
|
||||
else if (!transition.next_value) {
|
||||
if (statusDuration[transition.value]) {
|
||||
statusDuration[transition.value] += duration;
|
||||
statusDuration[transition.value].value += duration;
|
||||
statusDuration[transition.value].humanReadable = transition.duration_readable;
|
||||
} else {
|
||||
statusDuration[transition.value] = duration;
|
||||
statusDuration[transition.value] = {
|
||||
value: duration,
|
||||
humanReadable: transition.duration_readable
|
||||
};
|
||||
}
|
||||
}
|
||||
// For all other transitions
|
||||
else {
|
||||
if (statusDuration[transition.value]) {
|
||||
statusDuration[transition.value] += duration;
|
||||
statusDuration[transition.value].value += duration;
|
||||
statusDuration[transition.value].humanReadable = transition.duration_readable;
|
||||
} else {
|
||||
statusDuration[transition.value] = duration;
|
||||
statusDuration[transition.value] = {
|
||||
value: duration,
|
||||
humanReadable: transition.duration_readable
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -53,7 +64,6 @@ const jobLifecycle = async (req, res) => {
|
||||
|
||||
}
|
||||
|
||||
|
||||
const transitionsByJobId = _.groupBy(resp.transitions, 'jobid');
|
||||
|
||||
const groupedTransitions = {};
|
||||
@@ -66,6 +76,11 @@ const jobLifecycle = async (req, res) => {
|
||||
if (transition.end) {
|
||||
transition.end_readable = moment(transition.end).fromNow();
|
||||
}
|
||||
if(transition.duration){
|
||||
transition.duration_seconds = Math.round(transition.duration / 1000);
|
||||
transition.duration_minutes = Math.round(transition.duration_seconds / 60);
|
||||
transition.duration_readable = moment.duration(transition.duration).humanize();
|
||||
}
|
||||
return transition;
|
||||
});
|
||||
|
||||
@@ -75,7 +90,7 @@ const jobLifecycle = async (req, res) => {
|
||||
};
|
||||
}
|
||||
|
||||
console.dir(groupedTransitions, {depth: null});
|
||||
console.dir(groupedTransitions, {depth: null})
|
||||
|
||||
return res.status(200).json({
|
||||
jobIDs,
|
||||
|
||||
Reference in New Issue
Block a user