diff --git a/pkg/api/handlers/playbook/playbook_endpoints.go b/pkg/api/handlers/playbook/playbook_endpoints.go deleted file mode 100644 index 284cfc99..00000000 --- a/pkg/api/handlers/playbook/playbook_endpoints.go +++ /dev/null @@ -1,27 +0,0 @@ -package playbook - -import ( - "soarca/internal/controller/database" - - "github.com/gin-gonic/gin" -) - -// Main Router for the following endpoints: -// GET /playbook -// POST /playbook -// GET /playbook/playbook-id -// PUT /playbook/playbook-id -// DELETE /playbook/playbook-id -func Routes(route *gin.Engine, controller database.IController) { - playbookController := NewPlaybookController(controller) - playbook := route.Group("/playbook") - { - playbook.GET("/", playbookController.getAllPlaybooks) - playbook.GET("/meta/", playbookController.getAllPlaybookMetas) - playbook.POST("/", playbookController.submitPlaybook) - playbook.GET("/:id", playbookController.getPlaybookByID) - playbook.PUT("/:id", playbookController.updatePlaybookByID) - playbook.DELETE("/:id", playbookController.deleteByPlaybookID) - - } -} diff --git a/pkg/api/handlers/swagger/swagger_endpoints.go b/pkg/api/handlers/swagger/swagger_endpoints.go index b062958c..c0a891a2 100644 --- a/pkg/api/handlers/swagger/swagger_endpoints.go +++ b/pkg/api/handlers/swagger/swagger_endpoints.go @@ -1,17 +1 @@ package swagger - -import ( - api "soarca/api" - - "github.com/gin-gonic/gin" - swaggerfiles "github.com/swaggo/files" - ginSwagger "github.com/swaggo/gin-swagger" -) - -func Routes(route *gin.Engine) { - api.SwaggerInfo.BasePath = "/" - swagger := route.Group("/swagger") - { - swagger.GET("/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) - } -} diff --git a/middelware/gin_log_middleware.go b/pkg/api/middelware/gin_log_middleware.go similarity index 100% rename from middelware/gin_log_middleware.go rename to pkg/api/middelware/gin_log_middleware.go diff --git a/pkg/api/routes/routes.go b/pkg/api/routes/routes.go index 62796eca..77154c25 100644 --- a/pkg/api/routes/routes.go +++ b/pkg/api/routes/routes.go @@ -7,11 +7,11 @@ import ( playbook_routes "soarca/pkg/api/playbook" reporter "soarca/pkg/api/reporter" status "soarca/pkg/api/status" - swagger "soarca/pkg/api/swagger" "soarca/pkg/api/trigger" "github.com/gin-contrib/cors" gin "github.com/gin-gonic/gin" + ginSwagger "github.com/swaggo/gin-swagger" ) // POST /operator/coa/coa-id @@ -50,13 +50,67 @@ func Api(app *gin.Engine, return nil } -func Swagger(app *gin.Engine) { - swagger.Routes(app) -} - func Cors(app *gin.Engine, origins []string) { - config := cors.DefaultConfig() config.AllowOrigins = origins app.Use(cors.New(config)) } + +func SwaggerRoutes(route *gin.Engine) { + api.SwaggerInfo.BasePath = "/" + swagger := route.Group("/swagger") + { + swagger.GET("/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) + } +} + +// Main Router for the following endpoints: +// GET /playbook +// POST /playbook +// GET /playbook/playbook-id +// PUT /playbook/playbook-id +// DELETE /playbook/playbook-id +func PlaybookRoutes(route *gin.Engine, controller database.IController) { + playbookController := NewPlaybookController(controller) + playbook := route.Group("/playbook") + { + playbook.GET("/", playbookController.getAllPlaybooks) + playbook.GET("/meta/", playbookController.getAllPlaybookMetas) + playbook.POST("/", playbookController.submitPlaybook) + playbook.GET("/:id", playbookController.getPlaybookByID) + playbook.PUT("/:id", playbookController.updatePlaybookByID) + playbook.DELETE("/:id", playbookController.deleteByPlaybookID) + + } +} + +// Main Router for the following endpoints: +// GET /reporter +// GET /reporter/{execution-id} +func ReporterRoutes(route *gin.Engine, informer informer.IExecutionInformer) { + executionInformer := NewExecutionInformer(informer) + report := route.Group("/reporter") + { + report.GET("/", executionInformer.getExecutions) + report.GET("/:id", executionInformer.getExecutionReport) + } +} + +// GET /status +// GET /status/ping +func StepRoutes(route *gin.Engine) { + router := route.Group("/status") + { + router.GET("/", Api) + router.GET("/ping", Pong) + + } +} + +func TriggerRoutes(route *gin.Engine, trigger *TriggerApi) { + group := route.Group("/trigger") + { + group.POST("/playbook", trigger.Execute) + group.POST("/playbook/:id", trigger.ExecuteById) + } +}