From 33affe4e9f1f4ced79b149024c592f6ea7d1600a Mon Sep 17 00:00:00 2001 From: kompotkot Date: Wed, 3 Nov 2021 10:27:44 +0000 Subject: [PATCH] Tested version of new db status server version --- db/server/cmd/middlewares.go | 9 ++++----- db/server/cmd/routes.go | 15 +++++++++++++-- db/server/cmd/server.go | 2 +- db/server/sample.env | 1 - 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/db/server/cmd/middlewares.go b/db/server/cmd/middlewares.go index 8f2c2396..c11adb6c 100644 --- a/db/server/cmd/middlewares.go +++ b/db/server/cmd/middlewares.go @@ -1,13 +1,12 @@ package cmd import ( - "fmt" "log" "net/http" - "strings" + "strings" "time" - settings "github.com/bugout-dev/moonstream/db/server/configs" + settings "github.com/bugout-dev/moonstream/db/server/configs" ) // Handle panic errors to prevent server shutdown @@ -29,7 +28,7 @@ func logsMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() next.ServeHTTP(w, r) - fmt.Printf("[%s] %s %s %s\n", time.Since(start), r.Method, r.URL.Path, r.RemoteAddr) + log.Printf("%s %s %s %s\n", time.Since(start), r.Method, r.URL.Path, r.RemoteAddr) }) } @@ -38,7 +37,7 @@ func corsMiddleware(next http.Handler) http.Handler { // Iterate over list of allowed origins return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { for _, allowedOrigin := range strings.Split(settings.MOONSTREAM_CORS_ALLOWED_ORIGINS, ",") { - if r.Header.Get("Origin") == allowedOrigin { + if r.Header.Get("Origin") == allowedOrigin { w.Header().Set("Access-Control-Allow-Origin", allowedOrigin) } } diff --git a/db/server/cmd/routes.go b/db/server/cmd/routes.go index 891208c2..dea7413c 100644 --- a/db/server/cmd/routes.go +++ b/db/server/cmd/routes.go @@ -1,7 +1,9 @@ package cmd import ( + "database/sql" "encoding/json" + "log" "net/http" ) @@ -16,8 +18,17 @@ func (es *extendedServer) blocksLatestRoute(w http.ResponseWriter, req *http.Req w.Header().Set("Content-Type", "application/json") var latestBlock BlockNumberResponse - query := "SELECT block_number FROM ethereum_blocks ORDER BY block_number DESC LIMIT 1" - es.db.Raw(query, 1).Scan(&latestBlock.BlockNumber) + row := es.db.QueryRow("SELECT block_number FROM ethereum_blocks ORDER BY block_number DESC LIMIT 1") + err := row.Scan(&latestBlock.BlockNumber) + if err != nil { + if err == sql.ErrNoRows { + http.Error(w, "Row not found", http.StatusNotFound) + } else { + http.Error(w, "Internal server error", http.StatusInternalServerError) + } + log.Printf("An error occurred during sql operation: %s", err) + return + } json.NewEncoder(w).Encode(latestBlock) } diff --git a/db/server/cmd/server.go b/db/server/cmd/server.go index 431a6620..a4d5a71a 100644 --- a/db/server/cmd/server.go +++ b/db/server/cmd/server.go @@ -5,7 +5,7 @@ import ( "flag" "log" "net/http" - "time" + "time" ) type extendedServer struct { diff --git a/db/server/sample.env b/db/server/sample.env index ef5a4be3..a31c731c 100644 --- a/db/server/sample.env +++ b/db/server/sample.env @@ -1,3 +1,2 @@ -export MOONSTREAM_DB_SERVER_PORT="8080" export MOONSTREAM_DB_URI="postgresql://:@:/" export MOONSTREAM_CORS_ALLOWED_ORIGINS="http://localhost:3000,https://moonstream.to,https://www.moonstream.to,https://alpha.moonstream.to"