diff --git a/crm/rest/page.go b/crm/rest/page.go index 08e8f7a4b..fedee93b1 100644 --- a/crm/rest/page.go +++ b/crm/rest/page.go @@ -24,7 +24,11 @@ func (Page) New() *Page { } func (ctrl *Page) List(ctx context.Context, r *request.PageList) (interface{}, error) { - return ctrl.page.With(ctx).FindBySelfID(r.SelfID) + if r.SelfID > 0 { + return ctrl.page.With(ctx).FindBySelfID(r.SelfID) + } else { + return ctrl.page.With(ctx).Find() + } } func (ctrl *Page) Tree(ctx context.Context, r *request.PageTree) (interface{}, error) { diff --git a/crm/service/page.go b/crm/service/page.go index db326f1b1..fa19742a2 100644 --- a/crm/service/page.go +++ b/crm/service/page.go @@ -25,6 +25,7 @@ type ( FindByID(pageID uint64) (*types.Page, error) FindByModuleID(moduleID uint64) (*types.Page, error) FindBySelfID(selfID uint64) (pages types.PageSet, err error) + Find() (pages types.PageSet, err error) Tree() (pages types.PageSet, err error) FindRecordPages() (pages types.PageSet, err error) @@ -51,39 +52,19 @@ func (s *page) With(ctx context.Context) PageService { } func (s *page) FindByID(id uint64) (*types.Page, error) { - page, err := s.pageRepo.FindByID(id) - if err != nil { - return nil, err - } - if err := s.preload(page); err != nil { - return nil, err - } - return page, err + return s.pageRepo.FindByID(id) } func (s *page) FindByModuleID(moduleID uint64) (*types.Page, error) { - page, err := s.pageRepo.FindByModuleID(moduleID) - if err != nil { - return nil, err - } - if err := s.preload(page); err != nil { - return nil, err - } - return page, err + return s.pageRepo.FindByModuleID(moduleID) } func (s *page) FindBySelfID(selfID uint64) (pages types.PageSet, err error) { - return pages, s.db.Transaction(func() (err error) { - if pages, err = s.pageRepo.FindBySelfID(selfID); err != nil { - return - } + return s.pageRepo.FindBySelfID(selfID) +} - if err = s.preloadAll(pages); err != nil { - return - } - - return nil - }) +func (s *page) Find() (pages types.PageSet, err error) { + return s.pageRepo.Find() } func (s *page) Tree() (pages types.PageSet, err error) { @@ -120,17 +101,7 @@ func (s *page) Tree() (pages types.PageSet, err error) { } func (s *page) FindRecordPages() (pages types.PageSet, err error) { - return pages, s.db.Transaction(func() (err error) { - if pages, err = s.pageRepo.FindRecordPages(); err != nil { - return - } - - if err = s.preloadAll(pages); err != nil { - return - } - - return nil - }) + return s.pageRepo.FindRecordPages() } func (s *page) Reorder(selfID uint64, pageIDs []uint64) error { diff --git a/crm/service/page_util.go b/crm/service/page_util.go deleted file mode 100644 index c8a19d874..000000000 --- a/crm/service/page_util.go +++ /dev/null @@ -1,25 +0,0 @@ -package service - -import ( - "github.com/crusttech/crust/crm/types" -) - -func (s *page) preloadAll(pages types.PageSet) (err error) { - var modules types.ModuleSet - modules, err = s.moduleRepo.Find() - if err != nil { - return err - } - return pages.Walk(func(page *types.Page) error { - page.Module = modules.FindByID(page.ModuleID) - return nil - }) -} - -func (s *page) preload(page *types.Page) (err error) { - if page.ModuleID > 0 { - page.Module, err = s.moduleRepo.FindByID(page.ModuleID) - return - } - return -}