NameRequestParser::supports()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
/*
4
 * This file is part of the PostmanGeneratorBundle package.
5
 *
6
 * (c) Vincent Chalamon <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace PostmanGeneratorBundle\RequestParser;
13
14
use Doctrine\Common\Inflector\Inflector;
15
use PostmanGeneratorBundle\Model\Request;
16
17
class NameRequestParser implements RequestParserInterface
18
{
19
    /**
20
     * {@inheritdoc}
21
     */
22 6
    public function parse(Request $request)
23
    {
24 6
        $shortName = Inflector::camelize($request->getResource()->getShortName());
25 6
        switch ($request->getMethod()) {
26 6
            case 'POST':
27 1
                $request->setName(sprintf('Create %s', $shortName));
28 1
                break;
29 5
            case 'PUT':
30 5
            case 'PATCH':
31 2
                $request->setName(sprintf('Update %s', $shortName));
32 2
                break;
33 3
            case 'DELETE':
34 1
                $request->setName(sprintf('Delete %s', $shortName));
35 1
                break;
36 2
            case 'GET':
37 2
                if (!preg_match(UriRequestParser::PATTERN, $request->getUrl())) {
38 1
                    $shortName = Inflector::pluralize($shortName).' list';
39 1
                }
40 2
                $request->setName(sprintf('Get %s', $shortName));
41 2
                break;
42 6
        }
43 6
    }
44
45
    /**
46
     * {@inheritdoc}
47
     */
48 2
    public function supports(Request $request)
49
    {
50 2
        return null === $request->getName();
51
    }
52
}
53