1<?php
2/**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 */
8
9namespace Piwik\Period;
10
11use Piwik\Config;
12
13class PeriodValidator
14{
15    /**
16     * @param string $period
17     * @return bool
18     */
19    public function isPeriodAllowedForUI($period)
20    {
21        return in_array($period, $this->getPeriodsAllowedForUI());
22    }
23
24    /**
25     * @param string $period
26     * @return bool
27     */
28    public function isPeriodAllowedForAPI($period)
29    {
30        return in_array($period, $this->getPeriodsAllowedForAPI());
31    }
32
33    /**
34     * @return string[]
35     */
36    public function getPeriodsAllowedForUI()
37    {
38        $periodsAllowed = Config::getInstance()->General['enabled_periods_UI'];
39        $periodsAllowed = array_map('trim', explode(',', $periodsAllowed));
40        $periodsAllowed = array_unique($periodsAllowed);
41        $periodsAllowed = array_values($periodsAllowed);
42        return $periodsAllowed;
43    }
44
45    /**
46     * @return string[]
47     */
48    public function getPeriodsAllowedForAPI()
49    {
50        $periodsAllowed = Config::getInstance()->General['enabled_periods_API'];
51        $periodsAllowed = array_map('trim', explode(',', $periodsAllowed));
52        $periodsAllowed = array_unique($periodsAllowed);
53        $periodsAllowed = array_values($periodsAllowed);
54        return $periodsAllowed;
55    }
56}
57