Skip to content

Commit

Permalink
add helix "Get Followed Streams"
Browse files Browse the repository at this point in the history
  • Loading branch information
d-fischer committed May 30, 2021
1 parent 47a1883 commit f703e7f
Showing 1 changed file with 45 additions and 1 deletion.
46 changes: 45 additions & 1 deletion packages/twitch/src/API/Helix/Stream/HelixStreamApi.ts
Expand Up @@ -8,7 +8,7 @@ import { BaseApi } from '../../BaseApi';
import { HelixPaginatedRequest } from '../HelixPaginatedRequest';
import type { HelixPaginatedResult } from '../HelixPaginatedResult';
import { createPaginatedResult } from '../HelixPaginatedResult';
import type { HelixPagination } from '../HelixPagination';
import type { HelixForwardPagination, HelixPagination } from '../HelixPagination';
import { makePaginationQuery } from '../HelixPagination';
import type { HelixPaginatedResponse, HelixResponse } from '../HelixResponse';
import type { HelixTagData } from '../Tag/HelixTag';
Expand Down Expand Up @@ -282,6 +282,50 @@ export class HelixStreamApi extends BaseApi {
return result.data[0].stream_key;
}

/**
* Retrieves the streams that are currently live and are followed by the given user.
*
* @param user The user to check followed streams for.
* @param pagination
*
* @expandParams
*/
async getFollowedStreams(
user: UserIdResolvable,
pagination?: HelixForwardPagination
): Promise<HelixPaginatedResult<HelixStream>> {
const result = await this._client.callApi<HelixPaginatedResult<HelixStreamData>>({
type: TwitchApiCallType.Helix,
url: 'streams/followed',
scope: 'user:read:follows',
query: {
user_id: extractUserId(user),
...makePaginationQuery(pagination)
}
});

return createPaginatedResult(result, HelixStream, this._client);
}

/**
* Creates a paginator for the streams that are currently live and are followed by the given user.
*
* @param user The user to check followed streams for.
*/
getFollowedStreamsPaginated(user: UserIdResolvable): HelixPaginatedRequest<HelixStreamData, HelixStream> {
return new HelixPaginatedRequest(
{
url: 'stream/followed',
scope: 'user:read:follows',
query: {
user_id: extractUserId(user)
}
},
this._client,
data => new HelixStream(data, this._client)
);
}

private async _getStreamMarkers(
queryType: string,
id: string
Expand Down

0 comments on commit f703e7f

Please sign in to comment.