diff --git a/goshark/api.go b/goshark/api.go index 9c84db5..fb7e999 100644 --- a/goshark/api.go +++ b/goshark/api.go @@ -1,7 +1,6 @@ package goshark import ( - "log" "net/http" "strings" @@ -33,13 +32,10 @@ func GetHexHandler(ctx *gin.Context) { }) } -func HttpServer() { - r := gin.Default() - r.GET("/statusz", StatusZHandler) +func CreateRouter() (router *gin.Engine) { + router = gin.Default() + router.GET("/statusz", StatusZHandler) - r.GET("/api/v1/hex/:hex", GetHexHandler) - err := r.Run() - if err != nil { - log.Fatalf("cannot start http server %s", err) - } + router.GET("/api/v1/hex/:hex", GetHexHandler) + return } diff --git a/goshark/api_test.go b/goshark/api_test.go index cb8fef9..e78f760 100644 --- a/goshark/api_test.go +++ b/goshark/api_test.go @@ -1,6 +1,7 @@ package goshark import ( + "fmt" "io/ioutil" "net/http" "net/http/httptest" @@ -45,3 +46,8 @@ func TestGetHexHandler(t *testing.T) { assert.Equal(t, mockResponse, string(responseData)) assert.Equal(t, http.StatusOK, w.Code) } + +func TestCreateRouter(t *testing.T) { + r := CreateRouter() + assert.Equal(t, fmt.Sprintf("%T", r), "*gin.Engine") +} diff --git a/main.go b/main.go index 8f25eaa..dd3c97f 100644 --- a/main.go +++ b/main.go @@ -2,11 +2,16 @@ package main import ( "fmt" + "log" "github.com/PacketHelper/goshark/v2/goshark" ) func main() { fmt.Print("Starting goshark api...") - goshark.HttpServer() + + router := goshark.CreateRouter() + if err := router.Run(); err != nil { + log.Fatalf("cannot start http server %s", err) + } }