Code Duplication    Length = 3-3 lines in 5 locations

Controller/TrendsController.php 5 locations

@@ 203-205 (lines=3) @@
200
    protected function getRegexDate($type)
201
    {
202
        switch ($type) {
203
            case 'YEAR':
204
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1'],
205
                    'interval' => new \DateInterval('P10Y'), ];
206
            case 'MONTH':
207
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2'],
208
                    'interval' => new \DateInterval('P12M'), ];
@@ 206-208 (lines=3) @@
203
            case 'YEAR':
204
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1'],
205
                    'interval' => new \DateInterval('P10Y'), ];
206
            case 'MONTH':
207
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2'],
208
                    'interval' => new \DateInterval('P12M'), ];
209
            case 'DAY':
210
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3'],
211
                    'interval' => new \DateInterval('P31D'), ];
@@ 209-211 (lines=3) @@
206
            case 'MONTH':
207
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2'],
208
                    'interval' => new \DateInterval('P12M'), ];
209
            case 'DAY':
210
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3'],
211
                    'interval' => new \DateInterval('P31D'), ];
212
            case 'HOUR':
213
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3 $4'],
214
                    'interval' => new \DateInterval('PT24H'), ];
@@ 212-214 (lines=3) @@
209
            case 'DAY':
210
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3'],
211
                    'interval' => new \DateInterval('P31D'), ];
212
            case 'HOUR':
213
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3 $4'],
214
                    'interval' => new \DateInterval('PT24H'), ];
215
            case 'MINUTE':
216
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3 $4:$5'],
217
                    'interval' => new \DateInterval('PT3600S'), ];
@@ 215-217 (lines=3) @@
212
            case 'HOUR':
213
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3 $4'],
214
                    'interval' => new \DateInterval('PT24H'), ];
215
            case 'MINUTE':
216
                return ['replace' => ['regex' => '(\d+)\-(\d+)\-(\d+)T(\d+):(\d+):(\d+).+$', 'replacement' => '$1-$2-$3 $4:$5'],
217
                    'interval' => new \DateInterval('PT3600S'), ];
218
        }
219
        throw new \InvalidArgumentException("Invalid type $type");
220
    }