Code Duplication    Length = 3-3 lines in 5 locations

Controller/TrendsController.php 5 locations

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