diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-02 20:12:18 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-02 20:12:18 +0200 |
| commit | a637ea9c335c385985a23510a4174d837fb51faf (patch) | |
| tree | 211dac907d4cfcf67d4d994fd6dae7928d90e240 /internal/server/api/database.go | |
| parent | 996840205417820e3928b724b20bfed152048fda (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.go | 36 |
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", + }) +} |
