Files
fn-serverless/api/server/trigger_update.go
2018-08-23 21:44:15 -07:00

43 lines
807 B
Go

package server
import (
"net/http"
"github.com/fnproject/fn/api"
"github.com/fnproject/fn/api/models"
"github.com/gin-gonic/gin"
)
func (s *Server) handleTriggerUpdate(c *gin.Context) {
trigger := &models.Trigger{}
err := c.BindJSON(trigger)
if err != nil {
if models.IsAPIError(err) {
handleErrorResponse(c, err)
} else {
handleErrorResponse(c, models.ErrInvalidJSON)
}
return
}
pathTriggerID := c.Param(api.ParamTriggerID)
if trigger.ID == "" {
trigger.ID = pathTriggerID
} else {
if pathTriggerID != trigger.ID {
handleErrorResponse(c, models.ErrTriggerIDMismatch)
}
}
ctx := c.Request.Context()
triggerUpdated, err := s.datastore.UpdateTrigger(ctx, trigger)
if err != nil {
handleErrorResponse(c, err)
return
}
c.JSON(http.StatusOK, triggerUpdated)
}