From 03c094214b0b078c293b6b250aca7b5d4714fee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Wed, 9 Apr 2025 09:26:24 +0200 Subject: [PATCH] Add core bar-db module. --- backend/Makefile | 9 +++++++-- backend/bar-db.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++ backend/brminv.scm | 12 +++--------- 3 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 backend/bar-db.scm diff --git a/backend/Makefile b/backend/Makefile index 853d3af..2f098e5 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -9,7 +9,7 @@ BRMINV_SOURCES=brminv.scm frontend.import.scm command-line.import.scm \ util-proc.import.scm duck.import.scm texts.import.scm \ api-servlets.import.scm BRMINV_OBJS=brminv.o frontend.o command-line.o util-proc.o duck.o \ - texts.o api-servlets.o + texts.o api-servlets.o bar-db.o %.o: %.scm $(CSC) -c -static $< @@ -48,7 +48,12 @@ TEXTS-SOURCES=texts.scm texts.o: texts.import.scm texts.import.scm: $(TEXTS-SOURCES) -API-SERVLETS-SOURCES=api-servlets.scm +API-SERVLETS-SOURCES=api-servlets.scm bar-db.import.scm api-servlets.o: api-servlets.import.scm api-servlets.import.scm: $(API-SERVLETS-SOURCES) + +BAR-DB-SOURCES=bar-db.scm + +bar-db.o: bar-db.import.scm +bar-db.import.scm: $(BAR-DB-SOURCES) diff --git a/backend/bar-db.scm b/backend/bar-db.scm new file mode 100644 index 0000000..e2d954f --- /dev/null +++ b/backend/bar-db.scm @@ -0,0 +1,48 @@ +;; +;; bar-db.scm +;; +;; Bar database queries. +;; +;; ISC License +;; +;; Copyright 2023-2025 Brmlab, z.s. +;; Dominik Pantůček +;; +;; Permission to use, copy, modify, and/or distribute this software +;; for any purpose with or without fee is hereby granted, provided +;; that the above copyright notice and this permission notice appear +;; in all copies. +;; +;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +;; + +(declare (unit bar-db)) + +(module + bar-db + ( + bar-db-init! + ) + + (import scheme + (chicken base) + postgresql) + + (define bar-db-conn (make-parameter #f)) + + (define (bar-db-init! name host user pass) + (bar-db-conn + (connect + `((dbname . ,name) + (host . ,host) + (user . ,user) + (password . ,pass))))) + + ) diff --git a/backend/brminv.scm b/backend/brminv.scm index 1c5673a..1a029ea 100644 --- a/backend/brminv.scm +++ b/backend/brminv.scm @@ -32,8 +32,8 @@ intarweb uri-common (chicken string) - postgresql - api-servlets) + api-servlets + bar-db) (define -port- (make-parameter #f)) (define -certificate- (make-parameter #f)) @@ -101,13 +101,7 @@ (when (and (-user-) (-group-)) (switch-user/group (-user-) (-group-))) -(define dbconn - (connect - `((dbname . ,(-db-name-)) - (host . ,(-db-host-)) - (user . ,(-db-user-)) - (password . ,(-db-pass-))))) -(print dbconn) +(bar-db-init! (-db-name-) (-db-host-) (-db-user-) (-db-pass-)) (define (handle-api-calls) (define plst (cdr (uri-path (request-uri (current-request)))))