Completed
Push — master ( 6d4901...0b42c8 )
by Ryan
01:44
created

Tickets   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 86
Duplicated Lines 16.28 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
dl 14
loc 86
rs 10
c 0
b 0
f 0
wmc 6
lcom 1
cbo 2

6 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 8 1
A update() 0 8 1
A getAll() 7 8 1
A delete() 0 6 1
A getById() 0 6 1
A getChangelog() 7 7 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace SevenShores\Hubspot\Resources;
4
5
class Tickets extends Resource
6
{
7
    /**
8
     * @param array $ticket Array of deal properties.
9
     *
10
     * @throws \SevenShores\Hubspot\Exceptions\BadRequest
11
     *
12
     * @return mixed
13
     */
14
    public function create(array $ticket)
15
    {
16
        $endpoint = 'https://api.hubapi.com/crm-objects/v1/objects/tickets';
17
18
        $options['json'] = $ticket;
0 ignored issues
show
Coding Style Comprehensibility introduced by
$options was never initialized. Although not strictly required by PHP, it is generally a good practice to add $options = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
19
20
        return $this->client->request('post', $endpoint, $options);
21
    }
22
23
    /**
24
     * @param int   $id     The deal id.
25
     * @param array $ticket The deal properties to update.
26
     *
27
     * @return mixed
28
     */
29
    public function update($id, array $ticket)
30
    {
31
        $endpoint = "https://api.hubapi.com/crm-objects/v1/objects/tickets/{$id}";
32
33
        $options['json'] = $ticket;
0 ignored issues
show
Coding Style Comprehensibility introduced by
$options was never initialized. Although not strictly required by PHP, it is generally a good practice to add $options = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
34
35
        return $this->client->request('put', $endpoint, $options);
36
    }
37
38
    /**
39
     * @param array $params
40
     *
41
     * @throws \SevenShores\Hubspot\Exceptions\BadRequest
42
     *
43
     * @return \Psr\Http\Message\ResponseInterface|\SevenShores\Hubspot\Http\Response
44
     */
45 View Code Duplication
    public function getAll(array $params = [])
46
    {
47
        $endpoint = 'https://api.hubapi.com/crm-objects/v1/objects/tickets/paged';
48
49
        $queryString = build_query_string($params);
50
51
        return $this->client->request('get', $endpoint, [], $queryString);
52
    }
53
54
    /**
55
     * @param int $id
56
     *
57
     * @return mixed
58
     */
59
    public function delete($id)
60
    {
61
        $endpoint = "https://api.hubapi.com/crm-objects/v1/objects/tickets/{$id}";
62
63
        return $this->client->request('delete', $endpoint);
64
    }
65
66
    /**
67
     * @param int $id
68
     *
69
     * @return mixed
70
     */
71
    public function getById($id)
72
    {
73
        $endpoint = "https://api.hubapi.com/crm-objects/v1/objects/tickets/{$id}";
74
75
        return $this->client->request('get', $endpoint);
76
    }
77
78
    /**
79
     * @param array $params Optional parameters ['timestamp', 'changeType', 'objectId']
80
     *
81
     * @return mixed
82
     */
83 View Code Duplication
    public function getChangelog(array $params = [])
84
    {
85
        $endpoint = 'https://api.hubapi.com/crm-objects/v1/change-log/tickets';
86
        $queryString = build_query_string($params);
87
88
        return $this->client->request('get', $endpoint, [], $queryString);
89
    }
90
}
91