bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/apiserver/controllers/v1/machines.go (about)

     1  package v1
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"bitbucket.org/Aishee/synsec/pkg/models"
     7  	"bitbucket.org/Aishee/synsec/pkg/types"
     8  	"github.com/gin-gonic/gin"
     9  	"github.com/go-openapi/strfmt"
    10  )
    11  
    12  func (c *Controller) CreateMachine(gctx *gin.Context) {
    13  	defer types.CatchPanic("synsec/controllersV1/CreateMachine")
    14  	var err error
    15  	var input models.WatcherRegistrationRequest
    16  	if err = gctx.ShouldBindJSON(&input); err != nil {
    17  		gctx.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
    18  		return
    19  	}
    20  	if err = input.Validate(strfmt.Default); err != nil {
    21  		c.HandleDBErrors(gctx, err)
    22  		return
    23  	}
    24  
    25  	_, err = c.DBClient.CreateMachine(input.MachineID, input.Password, gctx.ClientIP(), false, false)
    26  	if err != nil {
    27  		c.HandleDBErrors(gctx, err)
    28  		return
    29  	}
    30  
    31  	gctx.Status(http.StatusCreated)
    32  	return
    33  }