Manage API Method Registration from main

This commit is contained in:
Samuel Lorch 2023-03-05 21:11:37 +01:00
parent c3d5e3edc1
commit be852d0655
5 changed files with 22 additions and 39 deletions

View file

@ -1,35 +0,0 @@
package server
import (
"context"
"fmt"
"nfsense.net/nfsense/pkg/jsonrpc"
)
var apiHandler jsonrpc.Handler
func init() {
apiHandler = jsonrpc.NewHandler(100 << 20)
apiHandler.Register("test", Ping{})
}
type Ping struct {
}
type PingRequest struct {
Msg string `json:"msg"`
}
type PingResponse struct {
Msg string `json:"msg"`
}
func (p Ping) Ping(ctx context.Context, req PingRequest) (*PingResponse, error) {
if req.Msg == "" {
return nil, fmt.Errorf("Message is empty")
}
return &PingResponse{
Msg: req.Msg,
}, nil
}

View file

@ -9,14 +9,17 @@ import (
"golang.org/x/exp/slog"
"nfsense.net/nfsense/pkg/definitions"
"nfsense.net/nfsense/pkg/jsonrpc"
)
var server http.Server
var mux = http.NewServeMux()
var apiHandler *jsonrpc.Handler
func StartWebserver(conf *definitions.Config) {
func StartWebserver(conf *definitions.Config, _apiHandler *jsonrpc.Handler) {
server.Addr = ":8080"
server.Handler = mux
apiHandler = _apiHandler
// Routing
mux.HandleFunc("/login", HandleLogin)