diff --git a/crm/repository/content.go b/crm/repository/content.go index 432416997..f3af235d8 100644 --- a/crm/repository/content.go +++ b/crm/repository/content.go @@ -159,6 +159,9 @@ func (r *content) Create(mod *types.Content) (*types.Content, error) { } func (r *content) Update(mod *types.Content) (*types.Content, error) { + if mod.ID == 0 { + return nil, errors.New("Error when savig content, invalid ID") + } now := time.Now() mod.UpdatedAt = &now diff --git a/crm/repository/module.go b/crm/repository/module.go index 9a96a55d8..32c64c255 100644 --- a/crm/repository/module.go +++ b/crm/repository/module.go @@ -80,6 +80,9 @@ func (r *module) Create(mod *types.Module) (*types.Module, error) { } func (r *module) Update(mod *types.Module) (*types.Module, error) { + if mod.ID == 0 { + return nil, errors.New("Error when savig module, invalid ID") + } now := time.Now() mod.UpdatedAt = &now diff --git a/crm/repository/page.go b/crm/repository/page.go index 43e341230..37081d8d7 100644 --- a/crm/repository/page.go +++ b/crm/repository/page.go @@ -127,6 +127,18 @@ func (r *page) Create(item *types.Page) (*types.Page, error) { } func (r *page) Update(page *types.Page) (*types.Page, error) { + if page.ID == 0 { + return nil, errors.New("Error when savig page, invalid ID") + } + if page.ModuleID > 0 { + if check, err := r.FindByModuleID(page.ModuleID); err != nil { + return nil, err + } else { + if check.ID != page.ID { + return nil, errors.New("Page for this module already exists") + } + } + } return page, r.db().Replace("crm_page", page) }