diff options
| author | Jan Tuomi <jan.tuomi@valuemotive.com> | 2021-04-18 20:10:34 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan.tuomi@valuemotive.com> | 2021-04-18 20:10:34 +0300 |
| commit | cf2e3c99ded0f48bd565858aedc7f10a0d932a61 (patch) | |
| tree | 699e9c6b78456474b4b0e680a15a6b1bc49aab08 /src/db.ts | |
| parent | baacc7676c688cd2728033e9051208d655255ee5 (diff) | |
Add db connection
Diffstat (limited to 'src/db.ts')
| -rw-r--r-- | src/db.ts | 41 |
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 + `); |
