summaryrefslogtreecommitdiff
path: root/internal/server/api/database.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-02 20:12:18 +0200
committerKyren223 <Kyren223@proton.me>2024-11-02 20:12:18 +0200
commita637ea9c335c385985a23510a4174d837fb51faf (patch)
tree211dac907d4cfcf67d4d994fd6dae7928d90e240 /internal/server/api/database.go
parent996840205417820e3928b724b20bfed152048fda (diff)
feat: client can now send messages and the server saves thme in DB
Diffstat (limited to 'internal/server/api/database.go')
-rw-r--r--internal/server/api/database.go36
1 files changed, 35 insertions, 1 deletions
diff --git a/internal/server/api/database.go b/internal/server/api/database.go
index 7057393..3546395 100644
--- a/internal/server/api/database.go
+++ b/internal/server/api/database.go
@@ -1,16 +1,23 @@
package api
import (
+ "context"
+ "crypto/ed25519"
"database/sql"
"log"
+ _ "github.com/mattn/go-sqlite3"
+
+ "github.com/kyren223/eko/internal/data"
"github.com/kyren223/eko/pkg/assert"
+ "github.com/kyren223/eko/pkg/snowflake"
)
var db *sql.DB
func ConnectToDatabase() {
- db, err := sql.Open("sqlite3", "server.db")
+ var err error
+ db, err = sql.Open("sqlite3", "file:server.db?cache=shared")
assert.NoError(err, "DB should always be accessible")
assert.AddFlush(db)
log.Println("established connection with the database")
@@ -30,6 +37,33 @@ func ConnectToDatabase() {
}
func CloseDatabase() {
+ assert.NotNil(db, "db should only be closed if it exists")
db.Close()
log.Println("connection with database closed")
}
+
+func demo() {
+ ctx := context.Background()
+ node := snowflake.NewNode(1)
+ pubKey, _, _ := ed25519.GenerateKey(nil)
+
+ queries := data.New(db)
+ user, _ := queries.CreateUser(ctx, data.CreateUserParams{
+ ID: node.Generate(),
+ PublicKey: pubKey,
+ })
+ user, _ = queries.SetUserName(ctx, data.SetUserNameParams{
+ ID: user.ID,
+ Name: "admin",
+ })
+ network, _ := queries.CreateNetwork(ctx, data.CreateNetworkParams{
+ ID: node.Generate(),
+ Name: "global",
+ OwnerID: user.ID,
+ })
+ _, _ = queries.CreateFrequency(ctx, data.CreateFrequencyParams{
+ ID: node.Generate(),
+ NetworkID: network.ID,
+ Name: "general",
+ })
+}