Skip to content

Commit 2691203

Browse files
authored
Merge pull request #74 from brandinarsenault/master
Added 9 Endpoints over 5 APIs, 2 new APIs created
2 parents 8d9f2c1 + 67697a3 commit 2691203

15 files changed

+544
-23
lines changed

spec/NewTwitchApi/NewTwitchApiSpec.php

+24
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44

55
use GuzzleHttp\Client;
66
use NewTwitchApi\Auth\OauthApi;
7+
use NewTwitchApi\Resources\AnalyticsApi;
8+
use NewTwitchApi\Resources\BitsApi;
9+
use NewTwitchApi\Resources\EntitlementsApi;
710
use NewTwitchApi\Resources\GamesApi;
811
use NewTwitchApi\Resources\StreamsApi;
12+
use NewTwitchApi\Resources\TagsApi;
913
use NewTwitchApi\Resources\UsersApi;
1014
use NewTwitchApi\Resources\WebhooksApi;
1115
use NewTwitchApi\Webhooks\WebhooksSubscriptionApi;
@@ -23,6 +27,21 @@ function it_should_provide_oauth_api()
2327
$this->getOauthApi()->shouldBeAnInstanceOf(OauthApi::class);
2428
}
2529

30+
function it_should_provide_analytics_api()
31+
{
32+
$this->getAnalyticsApi()->shouldBeAnInstanceOf(AnalyticsApi::class);
33+
}
34+
35+
function it_should_provide_bits_api()
36+
{
37+
$this->getBitsApi()->shouldBeAnInstanceOf(BitsApi::class);
38+
}
39+
40+
function it_should_provide_entitlements_api()
41+
{
42+
$this->getEntitlementsApi()->shouldBeAnInstanceOf(EntitlementsApi::class);
43+
}
44+
2645
function it_should_provide_games_api()
2746
{
2847
$this->getGamesApi()->shouldBeAnInstanceOf(GamesApi::class);
@@ -33,6 +52,11 @@ function it_should_provide_streams_api()
3352
$this->getStreamsApi()->shouldBeAnInstanceOf(StreamsApi::class);
3453
}
3554

55+
function it_should_provide_tags_api()
56+
{
57+
$this->getTagsApi()->shouldBeAnInstanceOf(TagsApi::class);
58+
}
59+
3660
function it_should_provide_users_api()
3761
{
3862
$this->getUsersApi()->shouldBeAnInstanceOf(UsersApi::class);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?php
2+
3+
namespace spec\NewTwitchApi\Resources;
4+
5+
use GuzzleHttp\Client;
6+
use GuzzleHttp\Psr7\Request;
7+
use GuzzleHttp\Psr7\Response;
8+
use PhpSpec\ObjectBehavior;
9+
use Psr\Http\Message\ResponseInterface;
10+
11+
class AnalyticsApiSpec extends ObjectBehavior
12+
{
13+
function let(Client $guzzleClient)
14+
{
15+
$this->beConstructedWith($guzzleClient);
16+
}
17+
18+
function it_should_get_extension_analytics(Client $guzzleClient, Response $response)
19+
{
20+
$guzzleClient->send(new Request('GET', 'analytics/extensions', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21+
$this->getExtensionAnalytics('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
22+
}
23+
24+
function it_should_get_extension_analytics_by_id(Client $guzzleClient, Response $response)
25+
{
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);
28+
}
29+
30+
function it_should_get_extension_analytics_with_type(Client $guzzleClient, Response $response)
31+
{
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);
34+
}
35+
36+
function it_should_get_extension_analytics_with_first(Client $guzzleClient, Response $response)
37+
{
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);
40+
}
41+
42+
function it_should_get_extension_analytics_with_after(Client $guzzleClient, Response $response)
43+
{
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);
46+
}
47+
48+
function it_should_get_extension_analytics_with_started_at(Client $guzzleClient, Response $response)
49+
{
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);
52+
}
53+
54+
function it_should_get_extension_analytics_with_ended_at(Client $guzzleClient, Response $response)
55+
{
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);
58+
}
59+
60+
function it_should_get_game_analytics(Client $guzzleClient, Response $response)
61+
{
62+
$guzzleClient->send(new Request('GET', 'analytics/games', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
63+
$this->getGameAnalytics('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
64+
}
65+
66+
function it_should_get_game_analytics_by_id(Client $guzzleClient, Response $response)
67+
{
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);
70+
}
71+
72+
function it_should_get_game_analytics_with_type(Client $guzzleClient, Response $response)
73+
{
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);
76+
}
77+
78+
function it_should_get_game_analytics_with_first(Client $guzzleClient, Response $response)
79+
{
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);
82+
}
83+
84+
function it_should_get_game_analytics_with_after(Client $guzzleClient, Response $response)
85+
{
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);
88+
}
89+
90+
function it_should_get_game_analytics_with_started_at(Client $guzzleClient, Response $response)
91+
{
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);
94+
}
95+
96+
function it_should_get_game_analytics_with_ended_at(Client $guzzleClient, Response $response)
97+
{
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);
100+
}
101+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace spec\NewTwitchApi\Resources;
4+
5+
use GuzzleHttp\Client;
6+
use GuzzleHttp\Psr7\Request;
7+
use GuzzleHttp\Psr7\Response;
8+
use PhpSpec\ObjectBehavior;
9+
use Psr\Http\Message\ResponseInterface;
10+
11+
class BitsApiSpec extends ObjectBehavior
12+
{
13+
function let(Client $guzzleClient)
14+
{
15+
$this->beConstructedWith($guzzleClient);
16+
}
17+
18+
function it_should_getcheermotes(Client $guzzleClient, Response $response)
19+
{
20+
$guzzleClient->send(new Request('GET', 'bits/cheermotes', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21+
$this->getCheermotes('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
22+
}
23+
24+
function it_should_getcheermotes_by_broadcaster_id(Client $guzzleClient, Response $response)
25+
{
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);
28+
}
29+
30+
function it_should_extension_transactions(Client $guzzleClient, Response $response)
31+
{
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);
34+
}
35+
36+
function it_should_extension_transactions_with_transaction_id(Client $guzzleClient, Response $response)
37+
{
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);
40+
}
41+
42+
function it_should_extension_transactions_with_first(Client $guzzleClient, Response $response)
43+
{
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);
46+
}
47+
48+
function it_should_extension_transactions_with_after(Client $guzzleClient, Response $response)
49+
{
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);
52+
}
53+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace spec\NewTwitchApi\Resources;
4+
5+
use GuzzleHttp\Client;
6+
use GuzzleHttp\Psr7\Request;
7+
use GuzzleHttp\Psr7\Response;
8+
use PhpSpec\ObjectBehavior;
9+
use Psr\Http\Message\ResponseInterface;
10+
11+
class EntitlementsApiSpec extends ObjectBehavior
12+
{
13+
function let(Client $guzzleClient)
14+
{
15+
$this->beConstructedWith($guzzleClient);
16+
}
17+
18+
function it_should_get_code_status(Client $guzzleClient, Response $response)
19+
{
20+
$guzzleClient->send(new Request('GET', 'entitlements/codes?user_id=123&code=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21+
$this->getCodeStatus('TEST_TOKEN', '123', ['abc'])->shouldBeAnInstanceOf(ResponseInterface::class);
22+
}
23+
24+
function it_should_redeem_code(Client $guzzleClient, Response $response)
25+
{
26+
$guzzleClient->send(new Request('POST', 'entitlements/code?user_id=123&code=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
27+
$this->redeemCode('TEST_TOKEN', '123', ['abc'])->shouldBeAnInstanceOf(ResponseInterface::class);
28+
}
29+
}

spec/NewTwitchApi/Resources/GamesApiSpec.php

+27-3
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,42 @@ function let(Client $guzzleClient)
1818
function it_should_get_games_by_ids(Client $guzzleClient, Response $response)
1919
{
2020
$guzzleClient->send(new Request('GET', 'games?id=12345&id=98765', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21-
$this->getGames("TEST_TOKEN", ['12345','98765'])->shouldBeAnInstanceOf(ResponseInterface::class);
21+
$this->getGames('TEST_TOKEN', ['12345', '98765'])->shouldBeAnInstanceOf(ResponseInterface::class);
2222
}
2323

2424
function it_should_get_games_by_names(Client $guzzleClient, Response $response)
2525
{
2626
$guzzleClient->send(new Request('GET', 'games?name=mario&name=sonic', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
27-
$this->getGames("TEST_TOKEN", [], ['mario','sonic'])->shouldBeAnInstanceOf(ResponseInterface::class);
27+
$this->getGames('TEST_TOKEN', [], ['mario', 'sonic'])->shouldBeAnInstanceOf(ResponseInterface::class);
2828
}
2929

3030
function it_should_get_games_by_ids_and_names(Client $guzzleClient, Response $response)
3131
{
3232
$guzzleClient->send(new Request('GET', 'games?id=12345&id=98765&name=mario&name=sonic', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
33-
$this->getGames("TEST_TOKEN", ['12345','98765'], ['mario','sonic'])->shouldBeAnInstanceOf(ResponseInterface::class);
33+
$this->getGames('TEST_TOKEN', ['12345', '98765'], ['mario', 'sonic'])->shouldBeAnInstanceOf(ResponseInterface::class);
34+
}
35+
36+
function it_should_get_top_games(Client $guzzleClient, Response $response)
37+
{
38+
$guzzleClient->send(new Request('GET', 'games/top', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
39+
$this->getTopGames('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
40+
}
41+
42+
function it_should_get_top_games_with_first(Client $guzzleClient, Response $response)
43+
{
44+
$guzzleClient->send(new Request('GET', 'games/top?first=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
45+
$this->getTopGames('TEST_TOKEN', 100)->shouldBeAnInstanceOf(ResponseInterface::class);
46+
}
47+
48+
function it_should_get_top_games_with_before(Client $guzzleClient, Response $response)
49+
{
50+
$guzzleClient->send(new Request('GET', 'games/top?before=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
51+
$this->getTopGames('TEST_TOKEN', null, 'abc')->shouldBeAnInstanceOf(ResponseInterface::class);
52+
}
53+
54+
function it_should_get_top_games_with_after(Client $guzzleClient, Response $response)
55+
{
56+
$guzzleClient->send(new Request('GET', 'games/top?after=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
57+
$this->getTopGames('TEST_TOKEN', null, null, 'abc')->shouldBeAnInstanceOf(ResponseInterface::class);
3458
}
3559
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace spec\NewTwitchApi\Resources;
4+
5+
use GuzzleHttp\Client;
6+
use GuzzleHttp\Psr7\Request;
7+
use GuzzleHttp\Psr7\Response;
8+
use PhpSpec\ObjectBehavior;
9+
use Psr\Http\Message\ResponseInterface;
10+
11+
class TagsApiSpec extends ObjectBehavior
12+
{
13+
function let(Client $guzzleClient)
14+
{
15+
$this->beConstructedWith($guzzleClient);
16+
}
17+
18+
function it_should_get_all_tags(Client $guzzleClient, Response $response)
19+
{
20+
$guzzleClient->send(new Request('GET', 'tags/streams', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
21+
$this->getAllStreamTags('TEST_TOKEN')->shouldBeAnInstanceOf(ResponseInterface::class);
22+
}
23+
24+
function it_should_get_all_tags_by_id(Client $guzzleClient, Response $response)
25+
{
26+
$guzzleClient->send(new Request('GET', 'tags/streams?tag_id=123', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
27+
$this->getAllStreamTags('TEST_TOKEN', [123])->shouldBeAnInstanceOf(ResponseInterface::class);
28+
}
29+
30+
function it_should_get_all_tags_with_first(Client $guzzleClient, Response $response)
31+
{
32+
$guzzleClient->send(new Request('GET', 'tags/streams?first=100', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
33+
$this->getAllStreamTags('TEST_TOKEN', [], 100)->shouldBeAnInstanceOf(ResponseInterface::class);
34+
}
35+
36+
function it_should_get_all_tags_with_after(Client $guzzleClient, Response $response)
37+
{
38+
$guzzleClient->send(new Request('GET', 'tags/streams?after=abc', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
39+
$this->getAllStreamTags('TEST_TOKEN', [], null, 'abc')->shouldBeAnInstanceOf(ResponseInterface::class);
40+
}
41+
42+
function it_should_get_stream_tags(Client $guzzleClient, Response $response)
43+
{
44+
$guzzleClient->send(new Request('GET', 'streams/tags?broadcaster_id=123', ['Authorization' => 'Bearer TEST_TOKEN']))->willReturn($response);
45+
$this->getStreamTags('TEST_TOKEN', '123')->shouldBeAnInstanceOf(ResponseInterface::class);
46+
}
47+
}

0 commit comments

Comments
 (0)