package main import ( _ "embed" "fmt" "log" "net/http" ) //go:embed public/index.html var index string type Server struct { ledger Ledger } func (server Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { log.Println(r.Method + r.URL.Path) switch r.Method + r.URL.Path { case "GET/api/transactions": server.getTransactions(w, r) case "PUT/api/transactions": server.putTransactions(w, r) case "GET/api/balances": server.getBalances(w, r) default: fmt.Fprint(w, index) } } func (server Server) getTransactions(w http.ResponseWriter, r *http.Request) { transactions, err := server.ledger.Transactions() if err != nil { } } func (server Server) putTransactions(w http.ResponseWriter, r *http.Request) { } func (server Server) getBalances(w http.ResponseWriter, r *http.Request) { }