// (C) 2007-2019 GoodData Corporation import { defaults, includes } from "lodash"; import { IMockProject, IProjectGroup } from "../../model/MockProject"; import { IDataSetsSelector } from "../bear/requests/DataSetsSelector"; import { DATASET_SELECTOR_TYPES } from "../../constants/DataSetSelectorTypes"; import * as GroupTypes from "../../constants/GroupTypes"; export function getGroups(userSelector: IDataSetsSelector, project: IMockProject): IProjectGroup[] { const selector: IDataSetsSelector = defaults({}, userSelector, { type: DATASET_SELECTOR_TYPES.PRODUCTION, customIdentifiers: [], }); if (selector.type === DATASET_SELECTOR_TYPES.CUSTOM) { return project.groups.filter(group => includes(selector.customIdentifiers, group.meta.identifier)); } if (selector.type === DATASET_SELECTOR_TYPES.ALL) { return project.groups; } if (selector.type === DATASET_SELECTOR_TYPES.PRODUCTION) { return project.groups.filter(group => group.meta.type === GroupTypes.PRODUCTION); } const knownTypes = Object.keys(DATASET_SELECTOR_TYPES); throw new Error(`Uknown type '${selector.type}'. Possible choices are ${knownTypes.join(", ")}`); }