Code Duplication    Length = 3-3 lines in 5 locations

Controller/TrendsController.php 5 locations

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