Skip to content

Commit 5c52ed7

Browse files
authored
Add Club activities & RefreshTokenResponse typing (#95)
1 parent c2f8b4f commit 5c52ed7

File tree

2 files changed

+47
-10
lines changed

2 files changed

+47
-10
lines changed

index.d.ts

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11

22
type Callback = (error: any, payload: any) => void;
33

4+
interface BaseArgs {
5+
access_token?: string;
6+
}
7+
48
export interface PushSubscriptionRoutes {
59
list(done?: Callback): Promise<any>;
610
create(args: any, done?: Callback): Promise<any>;
@@ -43,14 +47,39 @@ export interface RunningRacesRoutes {
4347
}
4448

4549
export interface ClubsRoutes {
46-
get(args: any, done?: Callback): Promise<any>;
47-
listMembers(args: any, done?: Callback): Promise<any>;
48-
listActivities(args: any, done?: Callback): Promise<any>;
49-
listAnnouncements(args: any, done?: Callback): Promise<any>;
50-
listEvents(args: any, done?: Callback): Promise<any>;
51-
listAdmins(args: any, done?: Callback): Promise<any>;
52-
joinClub(args: any, done?: Callback): Promise<any>;
53-
leaveClub(args: any, done?: Callback): Promise<any>;
50+
get(args: ClubsRoutesArgs, done?: Callback): Promise<any>;
51+
listMembers(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
52+
listActivities(args: ClubsRoutesListArgs, done?: Callback): Promise<ClubActivity[]>;
53+
listAnnouncements(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
54+
listEvents(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
55+
listAdmins(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
56+
joinClub(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
57+
leaveClub(args: ClubsRoutesListArgs, done?: Callback): Promise<any>;
58+
}
59+
60+
export interface ClubsRoutesArgs extends BaseArgs {
61+
id: string;
62+
}
63+
64+
export interface ClubsRoutesListArgs extends ClubsRoutesArgs {
65+
page?: number;
66+
per_page?: number;
67+
}
68+
69+
export interface ClubActivity {
70+
resource_state: number;
71+
athlete: {
72+
resource_state: number;
73+
firstname: string;
74+
lastname: string;
75+
};
76+
name: string;
77+
distance: number;
78+
moving_time: number;
79+
elapsed_time: number;
80+
total_elevation_gain: number;
81+
type: string;
82+
workout_type?: number | null;
5483
}
5584

5685
export interface AthletesRoutes {
@@ -83,10 +112,18 @@ export interface AthleteRoutes {
83112
export interface OAuthRoutes {
84113
getRequestAccessURL(args: any): Promise<any>;
85114
getToken(code: string, done?: Callback): Promise<any>;
86-
refreshToken(code: string): Promise<any>;
115+
refreshToken(code: string): Promise<RefreshTokenResponse>;
87116
deauthorize(args: any, done?: Callback): Promise<any>;
88117
}
89118

119+
export interface RefreshTokenResponse {
120+
token_type: string;
121+
access_token: string;
122+
expires_at: number;
123+
expires_in: number;
124+
refresh_token: string;
125+
}
126+
90127
export interface RateLimiting {
91128
exceeded(): boolean;
92129
fractionReached(): boolean;

lib/httpClient.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ HttpClient.prototype._requestHelper = function (options, done) {
193193
if (e.response && e.response.headers) {
194194
limits = rateLimiting.updateRateLimits(e.response.headers)
195195
}
196-
196+
197197
return Promise.reject(e)
198198
})
199199
.asCallback(callback)

0 commit comments

Comments
 (0)