summary refs log tree commit diff
path: root/src/connections/Facebook/index.ts
diff options
context:
space:
mode:
authorPuyodead1 <puyodead@proton.me>2023-08-06 23:15:35 -0400
committerPuyodead1 <puyodead@proton.me>2023-08-06 23:15:35 -0400
commitfe4acbfee58e840412ed5d496fb565843d4a8cdd (patch)
tree3397988bd5ff2c812a0fbf688c1d375ad02df7d8 /src/connections/Facebook/index.ts
parentFix connection class imports (diff)
downloadserver-fe4acbfee58e840412ed5d496fb565843d4a8cdd.tar.xz
Fix linter warnings in connections
Diffstat (limited to '')
-rw-r--r--src/connections/Facebook/index.ts25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/connections/Facebook/index.ts b/src/connections/Facebook/index.ts

index f3c16cf0..2bf26f34 100644 --- a/src/connections/Facebook/index.ts +++ b/src/connections/Facebook/index.ts
@@ -19,10 +19,10 @@ import { ConnectedAccount, ConnectedAccountCommonOAuthTokenResponse, + Connection, ConnectionCallbackSchema, ConnectionLoader, DiscordApiErrors, - Connection, } from "@spacebar/util"; import wretch from "wretch"; import { FacebookSettings } from "./FacebookSettings"; @@ -52,17 +52,20 @@ export default class FacebookConnection extends Connection { settings: FacebookSettings = new FacebookSettings(); init(): void { - this.settings = ConnectionLoader.getConnectionConfig( + const settings = ConnectionLoader.getConnectionConfig<FacebookSettings>( this.id, this.settings, - ) as FacebookSettings; + ); + + if (settings.enabled && (!settings.clientId || !settings.clientSecret)) + throw new Error(`Invalid settings for connection ${this.id}`); } getAuthorizationUrl(userId: string): string { const state = this.createState(userId); const url = new URL(this.authorizeUrl); - url.searchParams.append("client_id", this.settings.clientId!); + url.searchParams.append("client_id", this.settings.clientId as string); url.searchParams.append("redirect_uri", this.getRedirectUri()); url.searchParams.append("state", state); url.searchParams.append("response_type", "code"); @@ -73,8 +76,11 @@ export default class FacebookConnection extends Connection { getTokenUrl(code: string): string { const url = new URL(this.tokenUrl); - url.searchParams.append("client_id", this.settings.clientId!); - url.searchParams.append("client_secret", this.settings.clientSecret!); + url.searchParams.append("client_id", this.settings.clientId as string); + url.searchParams.append( + "client_secret", + this.settings.clientSecret as string, + ); url.searchParams.append("code", code); url.searchParams.append("redirect_uri", this.getRedirectUri()); return url.toString(); @@ -118,8 +124,11 @@ export default class FacebookConnection extends Connection { async handleCallback( params: ConnectionCallbackSchema, ): Promise<ConnectedAccount | null> { - const userId = this.getUserId(params.state); - const tokenData = await this.exchangeCode(params.state, params.code!); + const { state, code } = params; + if (!code) throw new Error("No code provided"); + + const userId = this.getUserId(state); + const tokenData = await this.exchangeCode(state, code); const userInfo = await this.getUser(tokenData.access_token); const exists = await this.hasConnection(userId, userInfo.id);