From e9fcd4ef8dc2942dc43dfbba86ec11faeb6cf867 Mon Sep 17 00:00:00 2001 From: Kristian Borgwarth <10348902@pm.me> Date: Sun, 22 Mar 2026 00:05:26 +0100 Subject: [PATCH] feat(jsonrpc): init model setup --- cmd/main.go | 4 ++++ .../handler.go => comms/command_handler.go} | 0 core/http/router.go | 0 core/models/types.go | 24 +++++++++++++++++++ core/server.go | 23 ++++++++++++++++++ 5 files changed, 51 insertions(+) rename core/{http/handler.go => comms/command_handler.go} (100%) delete mode 100644 core/http/router.go create mode 100644 core/server.go diff --git a/cmd/main.go b/cmd/main.go index 33b8a1c..5b14fba 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -10,6 +10,10 @@ import ( ) func main() { + +} + +func runMigration() { dbPath := filepath.Join("persistence", "index.db") db, err := sql.Open("sqlite", dbPath) diff --git a/core/http/handler.go b/core/comms/command_handler.go similarity index 100% rename from core/http/handler.go rename to core/comms/command_handler.go diff --git a/core/http/router.go b/core/http/router.go deleted file mode 100644 index e69de29..0000000 diff --git a/core/models/types.go b/core/models/types.go index e69de29..559aa0e 100644 --- a/core/models/types.go +++ b/core/models/types.go @@ -0,0 +1,24 @@ +// Package types contains relevant types for ipc +package types + +import "encoding/json" + +type Request struct { + Jsonrpc string `json:"jsonrpc"` + ID int `json:"id"` + Method string `json:"method"` + Params json.RawMessage `json:"params"` +} + +type Response struct { + Jsonrpc string `json:"jsonrpc"` + ID int `json:"id"` + Result interface{} `json:"result,omitempty"` + Error interface{} `json:"error,omitempty"` +} + +type Notification struct { + Jsonrpc string `json:"jsonrpc"` + Method string `json:"method"` + Params json.RawMessage `json:"params,omitempty"` +} diff --git a/core/server.go b/core/server.go new file mode 100644 index 0000000..22285a6 --- /dev/null +++ b/core/server.go @@ -0,0 +1,23 @@ +// Package server contains core functionality for dendrite server +package server + +import ( + "bufio" + "io" + "log/slog" + "os" +) + +type Server struct { + in *bufio.Reader + out io.Writer + log *slog.Logger +} + +func NewServer() *Server { + return &Server{ + in: bufio.NewReader(os.Stdin), + out: os.Stdout, + log: slog.Default(), + } +}