]> git.feebdaed.xyz Git - lgtm-rsvp.git/commitdiff
save db
authorseantywork <seantywork@gmail.com>
Sat, 28 Dec 2024 05:49:44 +0000 (05:49 +0000)
committerseantywork <seantywork@gmail.com>
Sat, 28 Dec 2024 05:49:44 +0000 (05:49 +0000)
config.yaml
init.sql [new file with mode: 0644]
main_test_.go
pkg/db/db.go
pkg/glob/glob.go

index 3928df76a116730c946f8f1a512b7f81512f131d..2651025f9bb1eb4154779f15d2939d4d8e705c63 100644 (file)
@@ -1,7 +1,9 @@
-test: -1
+test: 0
 serveAddr: "0.0.0.0:8080"
-dbAddr: "data/rsvp.db"
+db: 
+  addr: "data/rsvp.db"
+  initFile: "init.sql"
 admin:
   useOauth2: false
-  id: sample
+  id: seantywork@gmail.com
   pw: sample
\ No newline at end of file
diff --git a/init.sql b/init.sql
new file mode 100644 (file)
index 0000000..9eb2278
--- /dev/null
+++ b/init.sql
@@ -0,0 +1,19 @@
+CREATE TABLE admin (
+    admin_id INTEGER PRIMARY KEY,
+    id TEXT,
+    pw TEXT
+);
+CREATE TABLE story (
+    story_id INTEGER PRIMARY KEY,
+    id TEXT,
+    title TEXT,
+    date_marked TEXT
+    primary_media_id TEXT,
+    content TEXT
+);
+CREATE TABLE media (
+    media_id INTEGER PRIMARY KEY,
+    id TEXT,
+    kind TEXT,
+    content BLOB
+)
\ No newline at end of file
index fcaf6534aef602415c911e2dbce4b181df3b7855..f53713d97559f90e1bd96961b9cc53819af99bba 100644 (file)
@@ -2,6 +2,8 @@ package main
 
 import (
        "fmt"
+       pkgdb "our-wedding-rsvp/pkg/db"
+       pkgglob "our-wedding-rsvp/pkg/glob"
 )
 
 func test(tc int) error {
@@ -12,6 +14,8 @@ func test(tc int) error {
 
        case 0:
 
+               reterr = test_db()
+
                break
 
        default:
@@ -23,3 +27,14 @@ func test(tc int) error {
        return reterr
 
 }
+
+func test_db() error {
+
+       err := pkgdb.OpenDB(pkgglob.G_CONF.Db.Addr, pkgglob.G_CONF.Db.InitFile)
+
+       if err != nil {
+               return err
+       }
+
+       return nil
+}
index 2b2a0ca15cd901dc0505692c9c2457bf4462dd3a..d42472ee34b0131879c9edb45b169df0075030fe 100644 (file)
@@ -2,13 +2,14 @@ package db
 
 import (
        "database/sql"
+       "fmt"
 
        _ "github.com/mattn/go-sqlite3"
 )
 
 var _db *sql.DB
 
-func OpenDB(addr string) error {
+func OpenDB(addr string, initfile string) error {
 
        db, err := sql.Open("sqlite3", addr)
 
@@ -19,5 +20,55 @@ func OpenDB(addr string) error {
 
        _db = db
 
+       err = runInitSql(initfile)
+
+       if err != nil {
+
+               _db.Close()
+
+               return fmt.Errorf("failed to run init sql: %v", err)
+       }
+
+       return nil
+}
+
+func Query(query string, args []any) (*sql.Rows, error) {
+
+       var empty_row *sql.Rows
+
+       results, err := _db.Query(query, args[0:]...)
+
+       if err != nil {
+
+               return empty_row, fmt.Errorf("db query: %s", err.Error())
+
+       }
+
+       return results, err
+
+}
+
+func Exec(query string, args []any) error {
+
+       result, err := _db.Exec(query, args[0:]...)
+
+       if err != nil {
+               return fmt.Errorf("db exec: %s", err.Error())
+       }
+
+       _, err = result.RowsAffected()
+
+       if err != nil {
+
+               return fmt.Errorf("db exec: rows: %s", err.Error())
+       }
+
        return nil
+
+}
+
+func runInitSql(initfile string) error {
+
+       return nil
+
 }
index 0515cf835a2954785db7c33afbffc5d4b0d1ec73..302dac7059c5a2a765968d30016e1cd3db0ce7de 100644 (file)
@@ -3,8 +3,11 @@ package glob
 type Config struct {
        Test      int    `yaml:"test"`
        ServeAddr string `yaml:"serveAddr"`
-       DbAddr    string `yaml:"dbAddr"`
-       Admin     struct {
+       Db        struct {
+               Addr     string `yaml:"addr"`
+               InitFile string `yaml:"initFile"`
+       } `yaml:"db"`
+       Admin struct {
                UseOauth2 bool   `yaml:"useOauth2"`
                Id        string `yaml:"id"`
                Pw        string `yaml:"pw"`