diff options
author | Emiliano Ciavatta | 2020-04-21 17:26:23 +0000 |
---|---|---|
committer | Emiliano Ciavatta | 2020-04-21 17:26:23 +0000 |
commit | f8dd01e9cd59ff7c0920eab3dd65c02a15de059e (patch) | |
tree | b10f881d6a9f889911c7661e44ff55881b361665 /application_router.go | |
parent | 26c992c0b529ad52910ee9ed8f8b13dc9f3b9904 (diff) |
Add application_router tests; change connection_stream key hash method
Diffstat (limited to 'application_router.go')
-rw-r--r-- | application_router.go | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/application_router.go b/application_router.go index d79fee8..bdc8007 100644 --- a/application_router.go +++ b/application_router.go @@ -1,6 +1,7 @@ package main import ( + "errors" "github.com/gin-gonic/gin" "net/http" ) @@ -13,9 +14,14 @@ func CreateApplicationRouter(applicationContext *ApplicationContext) *gin.Engine // engine.Static("/", "./frontend/build") router.POST("/setup", func(c *gin.Context) { + if applicationContext.IsConfigured { + c.AbortWithStatus(http.StatusNotFound) + return + } + var settings struct { - Config Config `json:"config"` - Accounts gin.Accounts `json:"accounts"` + Config Config `json:"config" binding:"required"` + Accounts gin.Accounts `json:"accounts" binding:"required"` } if err := c.ShouldBindJSON(&settings); err != nil { @@ -89,6 +95,28 @@ func CreateApplicationRouter(applicationContext *ApplicationContext) *gin.Engine success(c, rule) } }) + + api.POST("/pcap/file", func(c *gin.Context) { + var body struct { + Path string + } + + if err := c.ShouldBindJSON(&body); err != nil { + badRequest(c, err) + return + } + + if !FileExists(body.Path) { + unprocessableEntity(c, errors.New("invalid path")) + return + } + + if sessionID, err := applicationContext.PcapImporter.ImportPcap(body.Path); err != nil { + unprocessableEntity(c, err) + } else { + c.JSON(http.StatusAccepted, gin.H{"session": sessionID}) + } + }) } return router |