diff --git a/src/connections/GitHub/index.ts b/src/connections/GitHub/index.ts
index ab3f8e65..aa686b03 100644
--- a/src/connections/GitHub/index.ts
+++ b/src/connections/GitHub/index.ts
@@ -1,4 +1,5 @@
import {
+ ApiError,
Config,
ConnectedAccount,
ConnectedAccountCommonOAuthTokenResponse,
@@ -70,12 +71,18 @@ export default class GitHubConnection extends Connection {
Accept: "application/json",
},
})
- .then((res) => res.json())
+ .then((res) => {
+ if (!res.ok) {
+ throw new ApiError("Failed to exchange code", 0, 400);
+ }
+
+ return res.json();
+ })
.catch((e) => {
console.error(
- `Error exchanging token for ${this.id} connection: ${e}`,
+ `Error exchanging code for ${this.id} connection: ${e}`,
);
- throw DiscordApiErrors.INVALID_OAUTH_TOKEN;
+ throw DiscordApiErrors.GENERAL_ERROR;
});
}
@@ -86,7 +93,20 @@ export default class GitHubConnection extends Connection {
headers: {
Authorization: `Bearer ${token}`,
},
- }).then((res) => res.json());
+ })
+ .then((res) => {
+ if (!res.ok) {
+ throw new ApiError("Failed to fetch user", 0, 400);
+ }
+
+ return res.json();
+ })
+ .catch((e) => {
+ console.error(
+ `Error fetching user for ${this.id} connection: ${e}`,
+ );
+ throw DiscordApiErrors.GENERAL_ERROR;
+ });
}
async handleCallback(
|