From 764b7bd0299955597a689ba29f594911dd872da0 Mon Sep 17 00:00:00 2001 From: Nemo D'ACREMONT Date: Sun, 1 Jun 2025 14:35:37 +0200 Subject: [PATCH] feat: add sql but won't work :) --- db.go | 26 ++++++++++++++++++++++++++ go.mod | 7 +++++++ main.go | 28 +++++++++++++++++++++++++++- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 db.go diff --git a/db.go b/db.go new file mode 100644 index 0000000..a483bca --- /dev/null +++ b/db.go @@ -0,0 +1,26 @@ +package main + +import ( + "context" + "database/sql" + "time" + + _ "github.com/ncruces/go-sqlite3/driver" + _ "github.com/ncruces/go-sqlite3/embed" +) + +func DBInit() (*sql.DB, error) { + db, err := sql.Open("sqlite3", "file:demo.db") + + if err != nil { + return &sql.DB{}, err + } + return db, nil +} + +func DBCtx() (context.Context, context.CancelFunc){ + var ctx context.Context + ctx, cancel := context.WithTimeout(ctx, 1 * time.Second) + + return ctx, cancel +} diff --git a/go.mod b/go.mod index 17d78c4..3233aa8 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,10 @@ module dacremont.xyz/learnrest go 1.24.3 + +require ( + github.com/ncruces/go-sqlite3 v0.26.0 // indirect + github.com/ncruces/julianday v1.0.0 // indirect + github.com/tetratelabs/wazero v1.9.0 // indirect + golang.org/x/sys v0.33.0 // indirect +) diff --git a/main.go b/main.go index 0934971..9354ac4 100644 --- a/main.go +++ b/main.go @@ -1,18 +1,44 @@ package main import ( + "database/sql" "log" "net/http" + "dacremont.xyz/learnrest/api" ) +var ( + DB sql.DB +) + func main() { server := http.Server{ Addr: ":8080", Handler: api.NewApi(), } - err := server.ListenAndServe() + log.Println("hey") + DB, err := DBInit() + log.Println("hey") + if err != nil { + log.Fatal(err.Error()) + } + log.Println("hey") + defer DB.Close() + + ctx, cancel := DBCtx() + defer cancel() + log.Println("hey") + err = DB.PingContext(ctx) + log.Println("hey") + if err != nil { + log.Fatal(err.Error()) + } + + log.Println("hey") + err = server.ListenAndServe() + log.Println("hey") if err != nil { log.Fatal(err) }