diff --git a/controllers/model.go b/controllers/model.go index 2a2e4f93..aa732a99 100644 --- a/controllers/model.go +++ b/controllers/model.go @@ -80,7 +80,7 @@ func (c *ApiController) UpdateModel() { return } - c.Data["json"] = wrapActionResponse(object.UpdateModel(id, &model)) + c.Data["json"] = wrapErrorResponse(object.UpdateModelWithCheck(id, &model)) c.ServeJSON() } diff --git a/object/model.go b/object/model.go index 85e0e723..760d2f0f 100644 --- a/object/model.go +++ b/object/model.go @@ -86,6 +86,17 @@ func GetModel(id string) *Model { return getModel(owner, name) } +func UpdateModelWithCheck(id string, modelObj *Model) error { + // check model grammar + _, err := model.NewModelFromString(modelObj.ModelText) + if err != nil { + return err + } + UpdateModel(id, modelObj) + + return nil +} + func UpdateModel(id string, modelObj *Model) bool { owner, name := util.GetOwnerAndNameFromId(id) if getModel(owner, name) == nil { @@ -98,11 +109,6 @@ func UpdateModel(id string, modelObj *Model) bool { return false } } - // check model grammar - _, err := model.NewModelFromString(modelObj.ModelText) - if err != nil { - panic(err) - } affected, err := adapter.Engine.ID(core.PK{owner, name}).AllCols().Update(modelObj) if err != nil {