summaryrefslogtreecommitdiff
path: root/api/db
diff options
context:
space:
mode:
Diffstat (limited to 'api/db')
-rw-r--r--api/db/_deleteCurrentChallenge.ts15
-rw-r--r--api/db/_deleteUser.ts18
-rw-r--r--api/db/_deleteUserAuthenticators.ts16
3 files changed, 49 insertions, 0 deletions
diff --git a/api/db/_deleteCurrentChallenge.ts b/api/db/_deleteCurrentChallenge.ts
new file mode 100644
index 0000000..1f597bc
--- /dev/null
+++ b/api/db/_deleteCurrentChallenge.ts
@@ -0,0 +1,15 @@
+import { sql } from '@vercel/postgres';
+import { CURRENT_CHALLENGES } from './_tables';
+
+export default async function deleteCurrentChallenge(userId: string) {
+ const query = `
+ DELETE FROM ${CURRENT_CHALLENGES.name}
+ WHERE ${CURRENT_CHALLENGES.fields.userId} = '${userId}'
+ `;
+
+ try {
+ await sql.query(query);
+ } catch (err) {
+ throw new Error(`Failed to delete current challenge for user with ID ${userId} in database. Query was ${query.replace(/\s+/g, ' ')}. ${err}`);
+ }
+}
diff --git a/api/db/_deleteUser.ts b/api/db/_deleteUser.ts
new file mode 100644
index 0000000..c926800
--- /dev/null
+++ b/api/db/_deleteUser.ts
@@ -0,0 +1,18 @@
+import type User from '../types/User';
+
+import { sql } from '@vercel/postgres';
+import { USERS } from './_tables';
+
+export default async function deleteUser(id: User['id']) {
+ const query = `
+ DELETE FROM ${USERS.name}
+ WHERE ${USERS.fields.id} = '${id}',
+ ;
+ `;
+
+ try {
+ await sql.query(query);
+ } catch (err) {
+ throw new Error(`Failed to delete user from database with ID: ${id}. Query was ${query.replace(/\s+/g, ' ')}. ${err}`);
+ }
+}
diff --git a/api/db/_deleteUserAuthenticators.ts b/api/db/_deleteUserAuthenticators.ts
new file mode 100644
index 0000000..32f4ea5
--- /dev/null
+++ b/api/db/_deleteUserAuthenticators.ts
@@ -0,0 +1,16 @@
+import { sql } from '@vercel/postgres';
+import { AUTHENTICATORS } from './_tables';
+import User from '../types/User';
+
+export default async function deleteUserAuthenticators(userId: User['id']) {
+ const query = `
+ DELETE FROM ${AUTHENTICATORS.name}
+ WHERE ${AUTHENTICATORS.fields.id} = '${id}';
+ `;
+
+ try {
+ await sql.query(query);
+ } catch (err) {
+ throw new Error(`Failed to delete authenticators for user with ID ${userId} from database. Query was ${query.replace(/\s+/g, ' ')}. ${err}`);
+ }
+}