1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace BlizzardApi\Service; |
4
|
|
|
|
5
|
|
|
use GuzzleHttp\Psr7\Response; |
6
|
|
|
|
7
|
|
|
/** |
8
|
|
|
* Starcraft class |
9
|
|
|
* |
10
|
|
|
* @author Oleg Kachinsky <[email protected]> |
11
|
|
|
*/ |
12
|
|
|
class Starcraft extends Service |
13
|
|
|
{ |
14
|
|
|
/** |
15
|
|
|
* {@inheritdoc} |
16
|
|
|
*/ |
17
|
|
|
protected $serviceParam = '/sc2'; |
18
|
|
|
|
19
|
|
|
// region Profile API |
20
|
|
|
|
21
|
|
|
/** |
22
|
|
|
* Get profile |
23
|
|
|
* |
24
|
|
|
* This provides data about an individual SC2 profile |
25
|
|
|
* |
26
|
|
|
* @param string $id The ID of the profile to retrieve |
27
|
|
|
* @param string $name The name of the profile to retrieve |
28
|
|
|
* @param string $region The region of the profile to retrieve |
29
|
|
|
* @param array $options Options |
30
|
|
|
* |
31
|
|
|
* @return Response |
32
|
|
|
*/ |
33
|
|
|
public function getProfile($id, $name, $region = '1', array $options = []) |
34
|
|
|
{ |
35
|
|
|
return $this->request('/profile/'.(string) $id.'/'.(string) $region.'/'.(string) $name.'/', $options); |
36
|
|
|
} |
37
|
|
|
|
38
|
|
|
/** |
39
|
|
|
* Get ladders |
40
|
|
|
* |
41
|
|
|
* This provides data about an individual SC2 profile's ladders |
42
|
|
|
* |
43
|
|
|
* @param string $id The ID of the profile to retrieve |
44
|
|
|
* @param string $name The name of the profile to retrieve |
45
|
|
|
* @param string $region The region of the profile to retrieve |
46
|
|
|
* @param array $options Options |
47
|
|
|
* |
48
|
|
|
* @return Response |
49
|
|
|
*/ |
50
|
|
|
public function getLadders($id, $name, $region = '1', array $options = []) |
51
|
|
|
{ |
52
|
|
|
return $this->request('/profile/'.(string) $id.'/'.(string) $region.'/'.(string) $name.'/ladders', $options); |
53
|
|
|
} |
54
|
|
|
|
55
|
|
|
/** |
56
|
|
|
* Get match history |
57
|
|
|
* |
58
|
|
|
* This provides data about an individual SC2 profile's match history |
59
|
|
|
* |
60
|
|
|
* @param string $id The ID of the profile to retrieve |
61
|
|
|
* @param string $name The name of the profile to retrieve |
62
|
|
|
* @param string $region The region of the profile to retrieve |
63
|
|
|
* @param array $options Options |
64
|
|
|
* |
65
|
|
|
* @return Response |
66
|
|
|
*/ |
67
|
|
|
public function getMatchHistory($id, $name, $region = '1', array $options = []) |
68
|
|
|
{ |
69
|
|
|
return $this->request('/profile/'.(string) $id.'/'.(string) $region.'/'.(string) $name.'/matches', $options); |
70
|
|
|
} |
71
|
|
|
|
72
|
|
|
// endregion Profile API |
73
|
|
|
|
74
|
|
|
// region Ladder API |
75
|
|
|
|
76
|
|
|
/** |
77
|
|
|
* Get ladder |
78
|
|
|
* |
79
|
|
|
* This provides data about an SC2 ladder |
80
|
|
|
* |
81
|
|
|
* @param string $id The ID of the ladder to retrieve. |
82
|
|
|
* @param array $options Options |
83
|
|
|
* |
84
|
|
|
* @return Response |
85
|
|
|
*/ |
86
|
|
|
public function getLadder($id, array $options = []) |
87
|
|
|
{ |
88
|
|
|
return $this->request('/ladder/'.(string) $id, $options); |
89
|
|
|
} |
90
|
|
|
|
91
|
|
|
// endregion Ladder API |
92
|
|
|
|
93
|
|
|
// region Data resources API |
94
|
|
|
|
95
|
|
|
/** |
96
|
|
|
* Get achievements |
97
|
|
|
* |
98
|
|
|
* This provides data about the achievements available in SC2 |
99
|
|
|
* |
100
|
|
|
* @param array $options Options |
101
|
|
|
* |
102
|
|
|
* @return Response |
103
|
|
|
*/ |
104
|
|
|
public function getAchievements(array $options = []) |
105
|
|
|
{ |
106
|
|
|
return $this->request('/data/achievements', $options); |
107
|
|
|
} |
108
|
|
|
|
109
|
|
|
/** |
110
|
|
|
* Get rewards |
111
|
|
|
* |
112
|
|
|
* This provides data about the rewards available in SC2 |
113
|
|
|
* |
114
|
|
|
* @param array $options Options |
115
|
|
|
* |
116
|
|
|
* @return Response |
117
|
|
|
*/ |
118
|
|
|
public function getRewards(array $options = []) |
119
|
|
|
{ |
120
|
|
|
return $this->request('/data/rewards', $options); |
121
|
|
|
} |
122
|
|
|
|
123
|
|
|
// endregion Data resources API |
124
|
|
|
|
125
|
|
|
// region Community OAuth API |
126
|
|
|
|
127
|
|
|
/** |
128
|
|
|
* Get profile user |
129
|
|
|
* |
130
|
|
|
* This provides data about the current logged in OAuth user's Sc2 profile |
131
|
|
|
* |
132
|
|
|
* @param null|string $accessToken Authorized user access token |
133
|
|
|
* @param array $options Options |
134
|
|
|
* |
135
|
|
|
* @return Response |
136
|
|
|
*/ |
137
|
|
View Code Duplication |
public function getProfileUser($accessToken = null, array $options = []) |
|
|
|
|
138
|
|
|
{ |
139
|
|
|
if (null === $accessToken) { |
140
|
|
|
$options['access_token'] = $this->blizzardClient->getAccessToken(); |
141
|
|
|
} else { |
142
|
|
|
$options['access_token'] = $accessToken; |
143
|
|
|
} |
144
|
|
|
|
145
|
|
|
return $this->request('/profile/user', $options); |
146
|
|
|
} |
147
|
|
|
|
148
|
|
|
// endregion Community OAuth API |
149
|
|
|
} |
150
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.