summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/analytics/instance_statistics/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/analytics/instance_statistics/utils.js')
-rw-r--r--app/assets/javascripts/analytics/instance_statistics/utils.js68
1 files changed, 0 insertions, 68 deletions
diff --git a/app/assets/javascripts/analytics/instance_statistics/utils.js b/app/assets/javascripts/analytics/instance_statistics/utils.js
deleted file mode 100644
index 396962ffad6..00000000000
--- a/app/assets/javascripts/analytics/instance_statistics/utils.js
+++ /dev/null
@@ -1,68 +0,0 @@
-import { masks } from 'dateformat';
-import { get } from 'lodash';
-import { formatDate } from '~/lib/utils/datetime_utility';
-
-const { isoDate } = masks;
-
-/**
- * Takes an array of items and returns one item per month with the average of the `count`s from that month
- * @param {Array} items
- * @param {Number} items[index].count value to be averaged
- * @param {String} items[index].recordedAt item dateTime time stamp to be collected into a month
- * @param {Object} options
- * @param {Object} options.shouldRound an option to specify whether the retuned averages should be rounded
- * @return {Array} items collected into [month, average],
- * where month is a dateTime string representing the first of the given month
- * and average is the average of the count
- */
-export function getAverageByMonth(items = [], options = {}) {
- const { shouldRound = false } = options;
- const itemsMap = items.reduce((memo, item) => {
- const { count, recordedAt } = item;
- const date = new Date(recordedAt);
- const month = formatDate(new Date(date.getFullYear(), date.getMonth(), 1), isoDate);
- if (memo[month]) {
- const { sum, recordCount } = memo[month];
- return { ...memo, [month]: { sum: sum + count, recordCount: recordCount + 1 } };
- }
-
- return { ...memo, [month]: { sum: count, recordCount: 1 } };
- }, {});
-
- return Object.keys(itemsMap).map((month) => {
- const { sum, recordCount } = itemsMap[month];
- const avg = sum / recordCount;
- if (shouldRound) {
- return [month, Math.round(avg)];
- }
-
- return [month, avg];
- });
-}
-
-/**
- * Takes an array of instance counts and returns the last item in the list
- * @param {Array} arr array of instance counts in the form { count: Number, recordedAt: date String }
- * @return {String} the 'recordedAt' value of the earliest item
- */
-export const getEarliestDate = (arr = []) => {
- const len = arr.length;
- return get(arr, `[${len - 1}].recordedAt`, null);
-};
-
-/**
- * Takes an array of queries and produces an object with the query identifier as key
- * and a supplied defaultValue as its value
- * @param {Array} queries array of chart query configs,
- * see ./analytics/instance_statistics/components/charts_config.js
- * @param {any} defaultValue value to set each identifier to
- * @return {Object} key value pair of the form { queryIdentifier: defaultValue }
- */
-export const generateDataKeys = (queries, defaultValue) =>
- queries.reduce(
- (acc, { identifier }) => ({
- ...acc,
- [identifier]: defaultValue,
- }),
- {},
- );