33de0a0a49
* setup * add new clients to attribution * refactor serializers, move to util folder * cleanup export csv generator * fix isDateRange getter * remove new chart from partial/current month * fix export modal text * update version history text * update variable naming, remove new client data from current/partial month * add filtering by namespace to month over month charts * remove filtering for namespace by month, need to change serializer * add checks * update horizontal bar chart test * update tests * cleanup * address comments * fix flakey test * add new counts to export Co-authored-by: Claire Bontempo <cbontempo@hashicorp.com>
26 lines
1.2 KiB
JavaScript
26 lines
1.2 KiB
JavaScript
import ApplicationSerializer from '../application';
|
|
import { formatISO } from 'date-fns';
|
|
import { formatByNamespace, homogenizeClientNaming } from 'core/utils/client-count-utils';
|
|
|
|
export default class MonthlySerializer extends ApplicationSerializer {
|
|
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
|
|
if (payload.id === 'no-data') {
|
|
return super.normalizeResponse(store, primaryModelClass, payload, id, requestType);
|
|
}
|
|
let response_timestamp = formatISO(new Date());
|
|
// TODO CMB: the following is assumed, need to confirm
|
|
// the months array will always include a single object: a timestamp of the current month and new/total count data, if available
|
|
let transformedPayload = {
|
|
...payload,
|
|
response_timestamp,
|
|
by_namespace: formatByNamespace(payload.data.by_namespace),
|
|
// nest within 'total' object to mimic /activity response shape
|
|
total: homogenizeClientNaming(payload.data),
|
|
};
|
|
delete payload.data.by_namespace;
|
|
delete payload.data.months;
|
|
delete payload.data.total;
|
|
return super.normalizeResponse(store, primaryModelClass, transformedPayload, id, requestType);
|
|
}
|
|
}
|