<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link    https://matomo.org
 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

namespace Piwik\API;

/**
 * Contains logic to replicate inconsistencies in Piwik's API. This class exists
 * to provide a way to clean up existing Piwik code and behavior without breaking
 * backwards compatibility immediately.
 *
 * Code that handles the case when the 'format_metrics' query parameter value is
 * 'bc' should be removed as well. This code is in API\Request and DataTablePostProcessor.
 *
 * Should be removed before releasing Piwik 3.0.
 */
class Inconsistencies
{
    /**
     * In Piwik 2.X and below, the "raw" API would format percent values but no others.
     * This method returns the list of percent metrics that were returned from the API
     * formatted so we can maintain BC.
     *
     * Used by DataTablePostProcessor.
     */
    public function getPercentMetricsToFormat()
    {
        return array(
            'bounce_rate',
            'conversion_rate',
            'abandoned_rate',
            'interaction_rate',
            'exit_rate',
            'bounce_rate_returning',
            'nb_visits_percentage',
            '/.*_evolution/',
            '/step_.*_rate/',
            '/funnel_.*_rate/',
            '/form_.*_rate/',
            '/field_.*_rate/',
            '/Referrers.*_percent/',
        );
    }
}
