package servers import ( "git.acooldomain.co/server-manager/backend-kubernetes-go/auth" "git.acooldomain.co/server-manager/backend-kubernetes-go/db_handler/mongo" "git.acooldomain.co/server-manager/backend-kubernetes-go/dbhandler" instancemanager "git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager" "git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager/docker" "git.acooldomain.co/server-manager/backend-kubernetes-go/models" "github.com/gin-gonic/gin" ) func (con Connection) GetBrowsers(ctx *gin.Context) { fileBrowsers, err := con.InstanceManager.ListFileBrowsers(ctx) if err != nil { ctx.AbortWithError(500, err) } ctx.JSON(200, fileBrowsers) } func (con Connection) StopBrowser(ctx *gin.Context) { serverId := ctx.Param("server_id") err := con.InstanceManager.StopFileBrowser(ctx, serverId) if err != nil { ctx.AbortWithError(500, err) return } ctx.Status(200) } func LoadBrowsersGroup(group *gin.RouterGroup, config models.GlobalConfig) { var instanceManager instancemanager.InstanceManager var serversDbHandler dbhandler.ServersDbHandler var serversAuthorizationHandler dbhandler.ServersAuthorizationDbHandler var err error if config.InstanceManager.Type == models.DOCKER { instanceManager, err = docker.NewInstanceManager(config.InstanceManager.Docker) if err != nil { panic(err) } } if config.ServersDatabase.Type == models.MONGO { serversDbHandler, err = mongo.NewServersDbHandler(*config.ServersDatabase.Mongo) if err != nil { panic(err) } } if config.ServersAuthorizationDatabase.Type == models.MONGO { serversAuthorizationHandler, err = mongo.NewAuthorizationHandler(*config.ServersAuthorizationDatabase.Mongo) if err != nil { panic(err) } } connection := Connection{ ServersDbHandler: serversDbHandler, ServerAuthorization: serversAuthorizationHandler, InstanceManager: instanceManager, } group.GET("", auth.AuthorizedTo(0), connection.GetBrowsers) group.POST("/:server_id/stop", auth.AuthorizedTo(models.Browse), connection.ServerAuthorized(models.Browse), connection.StopBrowser) }