Skip to content

Commit 9bed0f6

Browse files
authored
Merge pull request #117 from nicklaw5/phpspec-body-params-fix
2 parents 51e01c1 + 3321233 commit 9bed0f6

23 files changed

+729
-494
lines changed

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,6 @@ try {
5050

5151
// Your bearer token
5252
$twitch_access_token = $data->access_token ?? null;
53-
54-
// The scopes from the API
55-
$twitch_scopes = $data->scope;
5653
} catch (Exception $e) {
5754
//TODO: Handle Error
5855
}
@@ -69,6 +66,9 @@ $helixGuzzleClient = new \NewTwitchApi\HelixGuzzleClient($twitch_client_id);
6966
$newTwitchApi = new \NewTwitchApi\NewTwitchApi($helixGuzzleClient, $twitch_client_id, $twitch_client_secret);
7067
$oauth = $newTwitchApi->getOauthApi();
7168

69+
// Get the code from URI
70+
$code = $_GET['code'];
71+
7272
// Get the current URL, we'll use this to redirect them back to exactly where they came from
7373
$currentUri = explode('?', 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])[0];
7474

@@ -87,9 +87,6 @@ if ($code == '') {
8787

8888
// Your bearer token
8989
$twitch_access_token = $data->access_token ?? null;
90-
91-
// The scopes from the API
92-
$twitch_scopes = $data->scope;
9390
} else {
9491
//TODO: Handle Error
9592
}

spec/NewTwitchApi/NewTwitchApiSpec.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace spec\NewTwitchApi;
44

55
use GuzzleHttp\Client;
6+
use NewTwitchApi\RequestGenerator;
67
use NewTwitchApi\Auth\OauthApi;
78
use NewTwitchApi\Resources\AnalyticsApi;
89
use NewTwitchApi\Resources\BitsApi;

spec/NewTwitchApi/Resources/AnalyticsApiSpec.php

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,97 +5,98 @@
55
use GuzzleHttp\Client;
66
use GuzzleHttp\Psr7\Request;
77
use GuzzleHttp\Psr7\Response;
8+
use NewTwitchApi\RequestGenerator;
89
use PhpSpec\ObjectBehavior;
9-
use Psr\Http\Message\ResponseInterface;
1010

1111
class AnalyticsApiSpec extends ObjectBehavior
1212
{
13-
function let(Client $guzzleClient)
13+
function let(Client $guzzleClient, RequestGenerator $requestGenerator, Request $request, Response $response)
1414
{
15-
$this->beConstructedWith($guzzleClient);
15+
$this->beConstructedWith($guzzleClient, $requestGenerator);
16+
$guzzleClient->send($request)->willReturn($response);
1617
}
1718

18-
function it_should_get_extension_analytics(Client $guzzleClient, Response $response)
19+
function it_should_get_extension_analytics(RequestGenerator $requestGenerator, Request $request, Response $response)
1920
{
20-
$guzzleClient->send(new Request('GET', 'analytics/extensions', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21-
$this->getExtensionAnalytics('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
21+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [], [])->willReturn($request);
22+
$this->getExtensionAnalytics('TEST_TOKEN')->shouldBe($response);
2223
}
2324

24-
function it_should_get_extension_analytics_by_id(Client $guzzleClient, Response $response)
25+
function it_should_get_extension_analytics_by_id(RequestGenerator $requestGenerator, Request $request, Response $response)
2526
{
26-
$guzzleClient->send(new Request('GET', 'analytics/extensions?extension_id=1', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
27-
$this->getExtensionAnalytics('TEST_TOKEN', '1')->shouldBeAnInstanceOf(ResponseInterface::class);
27+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'extension_id', 'value' => '1']], [])->willReturn($request);
28+
$this->getExtensionAnalytics('TEST_TOKEN', '1')->shouldBe($response);
2829
}
2930

30-
function it_should_get_extension_analytics_with_type(Client $guzzleClient, Response $response)
31+
function it_should_get_extension_analytics_with_type(RequestGenerator $requestGenerator, Request $request, Response $response)
3132
{
32-
$guzzleClient->send(new Request('GET', 'analytics/extensions?type=overview_v1', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
33-
$this->getExtensionAnalytics('TEST_TOKEN', null, 'overview_v1')->shouldBeAnInstanceOf(ResponseInterface::class);
33+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'type', 'value' => 'overview_v1']], [])->willReturn($request);
34+
$this->getExtensionAnalytics('TEST_TOKEN', null, 'overview_v1')->shouldBe($response);
3435
}
3536

36-
function it_should_get_extension_analytics_with_first(Client $guzzleClient, Response $response)
37+
function it_should_get_extension_analytics_with_first(RequestGenerator $requestGenerator, Request $request, Response $response)
3738
{
38-
$guzzleClient->send(new Request('GET', 'analytics/extensions?first=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
39-
$this->getExtensionAnalytics('TEST_TOKEN', null, null, 100)->shouldBeAnInstanceOf(ResponseInterface::class);
39+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'first', 'value' => '100']], [])->willReturn($request);
40+
$this->getExtensionAnalytics('TEST_TOKEN', null, null, 100)->shouldBe($response);
4041
}
4142

42-
function it_should_get_extension_analytics_with_after(Client $guzzleClient, Response $response)
43+
function it_should_get_extension_analytics_with_after(RequestGenerator $requestGenerator, Request $request, Response $response)
4344
{
44-
$guzzleClient->send(new Request('GET', 'analytics/extensions?after=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
45-
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, 'abc')->shouldBeAnInstanceOf(ResponseInterface::class);
45+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'after', 'value' => 'abc']], [])->willReturn($request);
46+
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, 'abc')->shouldBe($response);
4647
}
4748

48-
function it_should_get_extension_analytics_with_started_at(Client $guzzleClient, Response $response)
49+
function it_should_get_extension_analytics_with_started_at(RequestGenerator $requestGenerator, Request $request, Response $response)
4950
{
50-
$guzzleClient->send(new Request('GET', 'analytics/extensions?started_at=2020-01-01T00:00:00Z', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
51-
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, null, '2020-01-01T00:00:00Z')->shouldBeAnInstanceOf(ResponseInterface::class);
51+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'started_at', 'value' => '2020-01-01T00:00:00Z']], [])->willReturn($request);
52+
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, null, '2020-01-01T00:00:00Z')->shouldBe($response);
5253
}
5354

54-
function it_should_get_extension_analytics_with_ended_at(Client $guzzleClient, Response $response)
55+
function it_should_get_extension_analytics_with_ended_at(RequestGenerator $requestGenerator, Request $request, Response $response)
5556
{
56-
$guzzleClient->send(new Request('GET', 'analytics/extensions?ended_at=2020-01-01T00:00:00Z', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
57-
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, null, null, '2020-01-01T00:00:00Z')->shouldBeAnInstanceOf(ResponseInterface::class);
57+
$requestGenerator->generate('GET', 'analytics/extensions', 'TEST_TOKEN', [['key' => 'ended_at', 'value' => '2020-01-01T00:00:00Z']], [])->willReturn($request);
58+
$this->getExtensionAnalytics('TEST_TOKEN', null, null, null, null, null, '2020-01-01T00:00:00Z')->shouldBe($response);
5859
}
5960

60-
function it_should_get_game_analytics(Client $guzzleClient, Response $response)
61+
function it_should_get_game_analytics(RequestGenerator $requestGenerator, Request $request, Response $response)
6162
{
62-
$guzzleClient->send(new Request('GET', 'analytics/games', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
63-
$this->getGameAnalytics('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
63+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [], [])->willReturn($request);
64+
$this->getGameAnalytics('TEST_TOKEN')->shouldBe($response);
6465
}
6566

66-
function it_should_get_game_analytics_by_id(Client $guzzleClient, Response $response)
67+
function it_should_get_game_analytics_by_id(RequestGenerator $requestGenerator, Request $request, Response $response)
6768
{
68-
$guzzleClient->send(new Request('GET', 'analytics/games?game_id=1', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
69-
$this->getGameAnalytics('TEST_TOKEN', '1')->shouldBeAnInstanceOf(ResponseInterface::class);
69+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'game_id', 'value' => '1']], [])->willReturn($request);
70+
$this->getGameAnalytics('TEST_TOKEN', '1')->shouldBe($response);
7071
}
7172

72-
function it_should_get_game_analytics_with_type(Client $guzzleClient, Response $response)
73+
function it_should_get_game_analytics_with_type(RequestGenerator $requestGenerator, Request $request, Response $response)
7374
{
74-
$guzzleClient->send(new Request('GET', 'analytics/games?type=overview_v1', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
75-
$this->getGameAnalytics('TEST_TOKEN', null, 'overview_v1')->shouldBeAnInstanceOf(ResponseInterface::class);
75+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'type', 'value' => 'overview_v1']], [])->willReturn($request);
76+
$this->getGameAnalytics('TEST_TOKEN', null, 'overview_v1')->shouldBe($response);
7677
}
7778

78-
function it_should_get_game_analytics_with_first(Client $guzzleClient, Response $response)
79+
function it_should_get_game_analytics_with_first(RequestGenerator $requestGenerator, Request $request, Response $response)
7980
{
80-
$guzzleClient->send(new Request('GET', 'analytics/games?first=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
81-
$this->getGameAnalytics('TEST_TOKEN', null, null, 100)->shouldBeAnInstanceOf(ResponseInterface::class);
81+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'first', 'value' => '100']], [])->willReturn($request);
82+
$this->getGameAnalytics('TEST_TOKEN', null, null, 100)->shouldBe($response);
8283
}
8384

84-
function it_should_get_game_analytics_with_after(Client $guzzleClient, Response $response)
85+
function it_should_get_game_analytics_with_after(RequestGenerator $requestGenerator, Request $request, Response $response)
8586
{
86-
$guzzleClient->send(new Request('GET', 'analytics/games?after=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
87-
$this->getGameAnalytics('TEST_TOKEN', null, null, null, 'abc')->shouldBeAnInstanceOf(ResponseInterface::class);
87+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'after', 'value' => 'abc']], [])->willReturn($request);
88+
$this->getGameAnalytics('TEST_TOKEN', null, null, null, 'abc')->shouldBe($response);
8889
}
8990

90-
function it_should_get_game_analytics_with_started_at(Client $guzzleClient, Response $response)
91+
function it_should_get_game_analytics_with_started_at(RequestGenerator $requestGenerator, Request $request, Response $response)
9192
{
92-
$guzzleClient->send(new Request('GET', 'analytics/games?started_at=2020-01-01T00:00:00Z', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
93-
$this->getGameAnalytics('TEST_TOKEN', null, null, null, null, '2020-01-01T00:00:00Z')->shouldBeAnInstanceOf(ResponseInterface::class);
93+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'started_at', 'value' => '2020-01-01T00:00:00Z']], [])->willReturn($request);
94+
$this->getGameAnalytics('TEST_TOKEN', null, null, null, null, '2020-01-01T00:00:00Z')->shouldBe($response);
9495
}
9596

96-
function it_should_get_game_analytics_with_ended_at(Client $guzzleClient, Response $response)
97+
function it_should_get_game_analytics_with_ended_at(RequestGenerator $requestGenerator, Request $request, Response $response)
9798
{
98-
$guzzleClient->send(new Request('GET', 'analytics/games?ended_at=2020-01-01T00:00:00Z', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
99-
$this->getGameAnalytics('TEST_TOKEN', null, null, null, null, null, '2020-01-01T00:00:00Z')->shouldBeAnInstanceOf(ResponseInterface::class);
99+
$requestGenerator->generate('GET', 'analytics/games', 'TEST_TOKEN', [['key' => 'ended_at', 'value' => '2020-01-01T00:00:00Z']], [])->willReturn($request);
100+
$this->getGameAnalytics('TEST_TOKEN', null, null, null, null, null, '2020-01-01T00:00:00Z')->shouldBe($response);
100101
}
101102
}

spec/NewTwitchApi/Resources/BitsApiSpec.php

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,50 @@
55
use GuzzleHttp\Client;
66
use GuzzleHttp\Psr7\Request;
77
use GuzzleHttp\Psr7\Response;
8+
use NewTwitchApi\RequestGenerator;
89
use PhpSpec\ObjectBehavior;
9-
use Psr\Http\Message\ResponseInterface;
1010

1111
class BitsApiSpec extends ObjectBehavior
1212
{
13-
function let(Client $guzzleClient)
13+
function let(Client $guzzleClient, RequestGenerator $requestGenerator, Request $request, Response $response)
1414
{
15-
$this->beConstructedWith($guzzleClient);
15+
$this->beConstructedWith($guzzleClient, $requestGenerator);
16+
$guzzleClient->send($request)->willReturn($response);
1617
}
1718

18-
function it_should_getcheermotes(Client $guzzleClient, Response $response)
19+
function it_should_getcheermotes(RequestGenerator $requestGenerator, Request $request, Response $response)
1920
{
20-
$guzzleClient->send(new Request('GET', 'bits/cheermotes', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21-
$this->getCheermotes('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
21+
$requestGenerator->generate('GET', 'bits/cheermotes', 'TEST_TOKEN', [], [])->willReturn($request);
22+
$this->getCheermotes('TEST_TOKEN')->shouldBe($response);
2223
}
2324

24-
function it_should_getcheermotes_by_broadcaster_id(Client $guzzleClient, Response $response)
25+
function it_should_getcheermotes_by_broadcaster_id(RequestGenerator $requestGenerator, Request $request, Response $response)
2526
{
26-
$guzzleClient->send(new Request('GET', 'bits/cheermotes?broadcaster_id=123', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
27-
$this->getCheermotes('TEST_TOKEN', '123')->shouldBeAnInstanceOf(ResponseInterface::class);
27+
$requestGenerator->generate('GET', 'bits/cheermotes', 'TEST_TOKEN', [['key' => 'broadcaster_id', 'value' => '123']], [])->willReturn($request);
28+
$this->getCheermotes('TEST_TOKEN', '123')->shouldBe($response);
2829
}
2930

30-
function it_should_extension_transactions(Client $guzzleClient, Response $response)
31+
function it_should_extension_transactions(RequestGenerator $requestGenerator, Request $request, Response $response)
3132
{
32-
$guzzleClient->send(new Request('GET', 'extensions/transactions?extension_id=1', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
33-
$this->getExtensionTransactions('TEST_TOKEN', '1')->shouldBeAnInstanceOf(ResponseInterface::class);
33+
$requestGenerator->generate('GET', 'extensions/transactions', 'TEST_TOKEN', [['key' => 'extension_id', 'value' => '1']], [])->willReturn($request);
34+
$this->getExtensionTransactions('TEST_TOKEN', '1')->shouldBe($response);
3435
}
3536

36-
function it_should_extension_transactions_with_transaction_id(Client $guzzleClient, Response $response)
37+
function it_should_extension_transactions_with_transaction_id(RequestGenerator $requestGenerator, Request $request, Response $response)
3738
{
38-
$guzzleClient->send(new Request('GET', 'extensions/transactions?extension_id=1&id=321', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
39-
$this->getExtensionTransactions('TEST_TOKEN', '1', ['321'])->shouldBeAnInstanceOf(ResponseInterface::class);
39+
$requestGenerator->generate('GET', 'extensions/transactions', 'TEST_TOKEN', [['key' => 'extension_id', 'value' => '1'], ['key' => 'id', 'value' => '321']], [])->willReturn($request);
40+
$this->getExtensionTransactions('TEST_TOKEN', '1', ['321'])->shouldBe($response);
4041
}
4142

42-
function it_should_extension_transactions_with_first(Client $guzzleClient, Response $response)
43+
function it_should_extension_transactions_with_first(RequestGenerator $requestGenerator, Request $request, Response $response)
4344
{
44-
$guzzleClient->send(new Request('GET', 'extensions/transactions?extension_id=1&first=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
45-
$this->getExtensionTransactions('TEST_TOKEN', '1', [], 100)->shouldBeAnInstanceOf(ResponseInterface::class);
45+
$requestGenerator->generate('GET', 'extensions/transactions', 'TEST_TOKEN', [['key' => 'extension_id', 'value' => '1'], ['key' => 'first', 'value' => '100']], [])->willReturn($request);
46+
$this->getExtensionTransactions('TEST_TOKEN', '1', [], 100)->shouldBe($response);
4647
}
4748

48-
function it_should_extension_transactions_with_after(Client $guzzleClient, Response $response)
49+
function it_should_extension_transactions_with_after(RequestGenerator $requestGenerator, Request $request, Response $response)
4950
{
50-
$guzzleClient->send(new Request('GET', 'extensions/transactions?extension_id=1&after=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
51-
$this->getExtensionTransactions('TEST_TOKEN', '1', [], null, 100)->shouldBeAnInstanceOf(ResponseInterface::class);
51+
$requestGenerator->generate('GET', 'extensions/transactions', 'TEST_TOKEN', [['key' => 'extension_id', 'value' => '1'], ['key' => 'after', 'value' => '100']], [])->willReturn($request);
52+
$this->getExtensionTransactions('TEST_TOKEN', '1', [], null, 100)->shouldBe($response);
5253
}
5354
}

0 commit comments

Comments
 (0)