Skip to content

Commit

Permalink
fix: Add missing non-iterable methods for timelines
Browse files Browse the repository at this point in the history
  • Loading branch information
neet committed Nov 13, 2022
1 parent 869361e commit 496aa04
Showing 1 changed file with 69 additions and 18 deletions.
87 changes: 69 additions & 18 deletions src/repositories/timelines-repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,55 @@ export class TimelinesRepository {
return this.getPublicIterable();
}

@version({ since: '0.0.0' })
getHomeIterable(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/home', params);
}

@version({ since: '0.0.0' })
getPublicIterable(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/public', params);
}

@version({ since: '0.0.0' })
getHashtagIterable(
hashtag: string,
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, `/api/v1/timelines/tag/${hashtag}`, params);
}

@version({ since: '2.1.0' })
getListIterable(
id: string,
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, `/api/v1/timelines/list/${id}`, params);
}

@deprecated('Use conversations API instead')
@version({ since: '0.0.0', until: '2.9.3' })
getDirectIterable(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/direct', params);
}

// ====

/**
* View statuses from followed users.
* @param params Parameters
* @return Array of Status
* @see https://docs.joinmastodon.org/methods/timelines/
*/
@version({ since: '0.0.0' })
getHomeIterable(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/home', params);
fetchHome(params?: FetchTimelineParams): Promise<IteratorResult<Status[]>> {
return this.getHomeIterable(params).next();
}

/**
Expand All @@ -49,10 +87,8 @@ export class TimelinesRepository {
* @see https://docs.joinmastodon.org/methods/timelines/
*/
@version({ since: '0.0.0' })
getPublicIterable(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/public', params);
fetchPublic(params?: FetchTimelineParams): Promise<IteratorResult<Status[]>> {
return this.getPublicIterable(params).next();
}

/**
Expand All @@ -63,11 +99,11 @@ export class TimelinesRepository {
* @see https://docs.joinmastodon.org/methods/timelines/
*/
@version({ since: '0.0.0' })
getTagIterable(
fetchHashtag(
hashtag: string,
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, `/api/v1/timelines/tag/${hashtag}`, params);
): Promise<IteratorResult<Status[]>> {
return this.getHashtagIterable(hashtag, params).next();
}

/**
Expand All @@ -78,11 +114,11 @@ export class TimelinesRepository {
* @see https://docs.joinmastodon.org/methods/timelines/
*/
@version({ since: '2.1.0' })
getList(
fetchList(
id: string,
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, `/api/v1/timelines/list/${id}`, params);
): Promise<IteratorResult<Status[]>> {
return this.getListIterable(id, params).next();
}

/**
Expand All @@ -93,9 +129,24 @@ export class TimelinesRepository {
*/
@deprecated('Use conversations API instead')
@version({ since: '0.0.0', until: '2.9.3' })
getDirect(
params?: FetchTimelineParams,
): Paginator<FetchTimelineParams, Status[]> {
return new Paginator(this.http, '/api/v1/timelines/direct', params);
fetchDirect(params?: FetchTimelineParams): Promise<IteratorResult<Status[]>> {
return this.getDirectIterable(params).next();
}

// ====

/**
* @deprecated Use getHashtagIterable instead.
*/
getTagIterable = this.getHashtagIterable.bind(this);

/**
* @deprecated Use getListIterable instead.
*/
getList = this.getListIterable.bind(this);

/**
* @deprecated Use getDirectIterable instead.
*/
getDirect = this.getDirectIterable.bind(this);
}

0 comments on commit 496aa04

Please sign in to comment.