summary refs log tree commit diff
path: root/src/util/connections/Connection.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/connections/Connection.ts')
-rw-r--r--src/util/connections/Connection.ts25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/util/connections/Connection.ts b/src/util/connections/Connection.ts
index 164cfac7..8b60b0d2 100644
--- a/src/util/connections/Connection.ts
+++ b/src/util/connections/Connection.ts
@@ -1,9 +1,11 @@
 import crypto from "crypto";
 import { ConnectedAccount } from "../entities";
-import { OrmUtils } from "../imports";
 import { ConnectedAccountSchema, ConnectionCallbackSchema } from "../schemas";
 import { DiscordApiErrors } from "../util";
 
+/**
+ * A connection that can be used to connect to an external service.
+ */
 export default abstract class Connection {
 	id: string;
 	settings: { enabled: boolean };
@@ -21,7 +23,9 @@ export default abstract class Connection {
 	 * Processes the callback
 	 * @param args Callback arguments
 	 */
-	abstract handleCallback(params: ConnectionCallbackSchema): Promise<ConnectedAccount | null>;
+	abstract handleCallback(
+		params: ConnectionCallbackSchema,
+	): Promise<ConnectedAccount | null>;
 
 	/**
 	 * Gets a user id from state
@@ -54,12 +58,25 @@ export default abstract class Connection {
 		this.states.delete(state);
 	}
 
-	async createConnection(data: ConnectedAccountSchema): Promise<ConnectedAccount> {
-		const ca = OrmUtils.mergeDeep(new ConnectedAccount(), data) as ConnectedAccount;
+	/**
+	 * Creates a Connected Account in the database.
+	 * @param data connected account data
+	 * @returns the new connected account
+	 */
+	async createConnection(
+		data: ConnectedAccountSchema,
+	): Promise<ConnectedAccount> {
+		const ca = ConnectedAccount.create({ ...data });
 		await ca.save();
 		return ca;
 	}
 
+	/**
+	 * Checks if a user has an exist connected account for the given extenal id.
+	 * @param userId the user id
+	 * @param externalId the connection id to find
+	 * @returns
+	 */
 	async hasConnection(userId: string, externalId: string): Promise<boolean> {
 		const existing = await ConnectedAccount.findOne({
 			where: {