virteen/internal/podman/podman_controller.go
2023-06-09 11:33:10 +02:00

43 lines
1.0 KiB
Go

package podman
import (
"git.cesium.pw/niku/virteen/internal/podman/models"
"github.com/gofiber/fiber/v2"
)
type PodmanController struct {
containerService *models.PodmanService
}
func NewPodmanController(cs *models.PodmanService) *PodmanController {
return &PodmanController{containerService: cs}
}
func (cc *PodmanController) ListContainers(ctx *fiber.Ctx) error {
containerList, err := (*cc.containerService).List()
if err != nil {
return err
}
return ctx.JSON(containerList)
}
func (cc *PodmanController) CreateContainer(ctx *fiber.Ctx) error {
var blueprint models.ContainerBlueprint
if err := ctx.BodyParser(&blueprint); err != nil {
return err
}
return (*cc.containerService).Create(blueprint)
}
func (cc *PodmanController) UpdateContainerStatus(ctx *fiber.Ctx) error {
name := ctx.Params("name")
state := ctx.Query("state")
return (*cc.containerService).UpdateStatus(name, state)
}
func (cc *PodmanController) DeleteContainer(ctx *fiber.Ctx) error {
name := ctx.Params("name")
return (*cc.containerService).Delete(name)
}