3
0

Simplify page API endpoints, no more module preloading

This commit is contained in:
Denis Arh
2019-01-16 15:40:58 +01:00
parent 5e6100d83a
commit b7e4779999
3 changed files with 13 additions and 63 deletions
+5 -1
View File
@@ -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) {
+8 -37
View File
@@ -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 {
-25
View File
@@ -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
}