// (C) 2007-2019 GoodData Corporation import { IMetric } from "../../model/Metric"; import { objectUri } from "../../route/routes"; import { getProjectId, IProject } from "../../model/Project"; import { ensureIdentifier } from "../helpers/objects"; import { ISchemaMetric } from "../model/SchemaMetric"; import { webalize } from "../../utils/string"; const createMetricIdentifier = (metric: ISchemaMetric) => webalize(metric.title); export function createMetric(project: IProject, metric: ISchemaMetric): IMetric { const identifier = ensureIdentifier(metric, createMetricIdentifier(metric)); return { content: { expression: metric.expression || "SELECT 1", format: metric.format || "#,##0.00", }, meta: { category: "metric", title: metric.title, identifier, uri: objectUri(getProjectId(project), identifier), tags: metric.tags, }, }; }