aboutsummaryrefslogtreecommitdiffstats
path: root/src/db.ts
diff options
context:
space:
mode:
authorJan Tuomi <jan.tuomi@valuemotive.com>2021-04-18 20:10:34 +0300
committerJan Tuomi <jan.tuomi@valuemotive.com>2021-04-18 20:10:34 +0300
commitcf2e3c99ded0f48bd565858aedc7f10a0d932a61 (patch)
tree699e9c6b78456474b4b0e680a15a6b1bc49aab08 /src/db.ts
parentbaacc7676c688cd2728033e9051208d655255ee5 (diff)
Add db connection
Diffstat (limited to 'src/db.ts')
-rw-r--r--src/db.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/db.ts b/src/db.ts
new file mode 100644
index 0000000..b2c9c1e
--- /dev/null
+++ b/src/db.ts
@@ -0,0 +1,41 @@
+import {
+ createPool,
+ QueryResultType,
+ sql,
+} from "slonik";
+import config from "./config";
+
+interface ActiveChat {
+ id: number;
+}
+
+interface PermittedUser {
+ id: number;
+}
+
+const connection = createPool(config.pgConnectionUri);
+
+export const getActiveChats = async (): Promise<readonly ActiveChat[]> =>
+ connection.any(sql`
+ SELECT *
+ FROM active_chats
+ `);
+
+export const addActiveChat = async (id: number): Promise<QueryResultType<void>> =>
+ connection.query<void>(sql`
+ INSERT INTO active_chats
+ (id) VALUES
+ (${id})
+ `);
+
+export const removeActiveChat = async (id: number): Promise<QueryResultType<void>> =>
+ connection.query<void>(sql`
+ DELETE FROM active_chats
+ WHERE id = ${id}
+ `);
+
+export const getPermittedUsers = async (): Promise<readonly PermittedUser[]> =>
+ connection.any(sql`
+ SELECT *
+ FROM permitted_users
+ `);